unterscheiden zwischen deutsch/iso/us datum

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • unterscheiden zwischen deutsch/iso/us datum

    Hi,

    habe das Problem das ich nicht weiss wie ich verschiedene Datumtypen (de/us/iso) unterscheiden kann. Diese werden dann in ein Timestamp umgewandelt und gespeichert. Habe es mit preg_match() versucht das er z.B einen Punkt (.) oder bei us ein Slash sucht , bzw iso Bindestrich. Jedoch liefert er mir egal welches Datum es ist immer als ergebniss Deutsch.

    Leider stehe ich mit RegEx irgewie auf Kriegsfuss. Sommit kann ich nicht beurteile ob es ricgtig oder falsch ist.

    Solche eingaben sind möglich:
    27.08.2006 00:59:59
    2005-08-27 00:59:59

    Wie schaffe ich es nun das er das Datum korrekt erkennt..


    PHP-Code:
     if(preg_match('/./',$dateStr) >= 1) {
          
    $date split('[.:]',$dateStr);
          
    $tmp0 $date[0];
          
    $tmp1 $date[1];
          
    $date[0] = $date[2];
          
    $date[1] = $tmp0;
          
    $date[2] = $tmp1;
        } else {
          
    $date split('[-:]'$dateStr);
        }
        
         return 
    mktime((int)$date[3],(int)$date[4],(int)$date[5],(int)$date[1],(int)$date[2],(int)$date[0]); 
    Zuletzt geändert von BlackMagic; 11.11.2005, 14:04.

  • #2
    Und wie sieht der Code aus?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      strptime (ab PHP5)

      Woher kommen die Daten eigentlich? Kannst du nicht dafür sorgen, dass sie in einem bestimmten Format vorliegen?

      Kommentar


      • #4
        ... werden per inputfeld eingegeben.

        php5 ist nicht vorhanden...


        habt ihr vielleicht ein RegEx ausdrück für mich der zumindest den String korrekt durchsucht?

        Kommentar


        • #5
          Vor deinem . im regulären Ausdruck fehlt ein \

          Du suchst nach einem beliebigen Zeichen, \. sucht nach dem Punkt.

          Warum benutzt du für sowas nicht strpos?
          Oder gleich explode?

          Wenn ein explode bei Punkten nicht geht, ist es kein deutsches Datumund du versuchst es mit einem -
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            nun läufts...

            PHP-Code:
             if(preg_match('#^\d{1,2}\.\d{1,2}\.\d{2,4}#',$dateStr) >= 1

            Kommentar

            Lädt...
            X