Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Zeitkonvertierung/Regex gesucht.

Einklappen

Neue Werbung 2019

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

  • .PolluX
    hat ein Thema erstellt [Erledigt] Zeitkonvertierung/Regex gesucht..

    [Erledigt] Zeitkonvertierung/Regex gesucht.

    Hallo,
    da ich mich mit Regex etwas schwer tuhe, bräuchte ich fix jemand, der mir das ding basteln kann, passend auf meine Bedürfnisse.

    Ich habe ein Script, welches aus einer CSV verschiedene Daten lädt, darunter auch ein Datum.
    Das Datum kann aber in 3 verschiedenen Arten vorliegen..
    1. "normal": 01.02.2003
    2. "woche": 2014-W18
    3. "monat": 2014-M7

    Für Woche und Monat brauche ich einen Regex.

    Hier mein Code, die Funktion get_monday_of_week habe ich von HIER.
    PHP-Code:
    if ($fields[1] == date(Y)."-W".date(W))
                            
    $ex explode("-"$fields[1]);
                            
    $test explode("W"$ex[1]);
                            
    $woche $test[1];
                            
                            
    $j $ex[0];
                            
    $kw $woche;
                            
                            
    $date2 get_monday_of_week($kw,$j); 
    Mein IF State wird so halt nicht funktionieren, da ich verschiedene Wochen in der Datei habe (W18-W20 zum Beispiel) deswegen brauche ich da einen passenden Regex für.

    Vielen Dank schonmal vorab für eure Hilfe.
    Liebe Grüße,
    .PolluX

  • tr0y
    antwortet
    PHP-Code:
    $datum '2014-M07';

    $dateTime DateTime::createFromFormat('Y-*m'$datum, new DateTimeZone('europe/berlin'));
    $dateTime->modify('first monday of this month');

    var_dump($dateTime); 
    Code:
    object(DateTime)#2 (3) {
      ["date"]=>
      string(19) "2014-08-04 00:00:00"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(13) "Europe/Berlin"
    }

    Einen Kommentar schreiben:


  • jspit
    antwortet
    1. Du hast den Vorteil der DateTime Klasse noch nicht erkannt. So etwas wie get_monday_of_week brauchst du dann nicht mehr, das Thema ist in 1-2 Zeilen erledigt.
    2. Deine "Lösung" ist speziell für die Monatsnotation, du brauchst dann wieder eine Fallunterscheidung für die anderen Notationen. Der obige 2-Zeiler erschlägt alles, probier es aus.

    Edit: Hast du mal nachgesehen, wie alt der thread mit get_monday_of_week ist?

    Einen Kommentar schreiben:


  • .PolluX
    antwortet
    Wobei man das mit dem Monat auch noch anders lösen kann.
    So zum Beispiel:
    PHP-Code:
    $datum "2014-M07"

    $ex explode("-"$datum);
    $test explode("M"$ex[1]);
    $month $test[1];
                            
    $date2 "01.".$month.".".$ex[0]; 
    Ist zwar mehr Script, aaaaber man erhält auch ein Date, das man weiterverwenden kann um es z.b. in einen Timestamp zu packen oder so.

    Einen Kommentar schreiben:


  • hausl
    antwortet
    So sei es
    (hatte gerade keine Lust zum eroieren ob alle Varianten "direkt gefressen" werden bzw. was zu tun wäre, bla, bla ...)

    Einen Kommentar schreiben:


  • jspit
    antwortet
    Solche dicken Geschütze sind doch nicht notwendig, hausl. Variante 1 und 2 wird direkt akzeptiert, Variante 3 mit etwas Nachhilfe:
    PHP-Code:
      $strDate str_replace('-M','-',$strDate);
      
    $date date_create($strDate); 
    Damit habe ich für alle obige Varianten ein DateTime-Objekt.

    LG jspit

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Zitat von .PolluX Beitrag anzeigen
    1. "normal": 01.02.2003
    2. "woche": 2014-W18
    3. "monat": 2014-M7
    Bzgl. der (expliziten) "mehrstufigen" Inputformat-Varianten könntest du dir das hier anschauen:

    http://www.php.de/php-einsteiger/918...tml#post674170

    Einen Kommentar schreiben:


  • hausl
    antwortet
    LOL, stimmt war mir vorhin gar nicht aufgefallen, das der "damals" auch schon von dir war .. hatte nur mehr das mit dem "direkten Funktionieren" der Kalenderwoche als Input-Format im Kopf ...

    Einen Kommentar schreiben:


  • .PolluX
    antwortet
    jetzt hätte ich einen extra festen facepalm verdient..

    Ist sogar nen Fragethread von mir von vor 6 Monaten...

    Naja, hat sich dann ja erledigt, danke dir

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Schau dir mal das an: http://www.php.de/php-einsteiger/103...tml#post763310

    Einen Kommentar schreiben:

Lädt...
X