Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyszukanie i konwersja daty
Forum PHP.pl > Forum > Przedszkole
HTMLame
Na wejście podaję tekst, w którym jest mnóstwo niepotrzebnych znaków, a między nimi występują daty w formacie DD-MM-YYYY.

Np.

(... niepotrzebny tekst ...)

21-01-2007

(... niepotrzebny tekst ...)

03-11-2008

(... niepotrzebny tekst ...)

Jak skonstruować skrypt, aby na wyjściu podawał ten sam tekst, ale ze skonwertowaną datą do formatu YYYY-MM-DD:

(... niepotrzebny tekst ...)

2007-01-21

(... niepotrzebny tekst ...)

2008-11-03

(... niepotrzebny tekst ...)

Pierwszą myślą, która przyszła mi do głowy (choć nie wiem czy dobrą) są wyrażenia regularne. Ma ktoś jakiś pomysł?
athei
preg_replace" title="Zobacz w manualu PHP" target="_manual
Jeśli tekst jest w takiej formie, w jakiej podałeś (tzn daty w nowych liniach) to:
  1. <?php
  2. echo preg_replace('/^(d{2})-(d{2})-(d{4})r?$/im', '$3-$2-$1', $tekst);
  3. ?>
vokiel
Cytat(athei @ 30.07.2009, 19:12:00 ) *
preg_replace" title="Zobacz w manualu PHP" target="_manual
Jeśli tekst jest w takiej formie, w jakiej podałeś (tzn daty w nowych liniach) to:
  1. <?php
  2. echo preg_replace('/^(d{2})-(d{2})-(d{4})r?$/im', '$3-$2-$1', $tekst);
  3. ?>


Tylko trzeba ujednolicić daty, bo raz widzę jest RRRR-MM-DD, a raz DD-MM-RRRR.
Albo puścić 2 razy wyrażenie reguralne, z tym, że drugie:
  1. <?php
  2. echo preg_replace('/^(d{2})-(d{2})-(d{4})r?$/im', '$3-$2-$1', $tekst);
  3. echo preg_replace('/^(d{4})-(d{2})-(d{2})r?$/im', '$3-$2-$1', $tekst);
  4. ?>
dr_bonzo
@vokiel: to RRRR-MM-DD to byl wynikowy html kod tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.