Datum als String in Timestamp wandeln

Hallo an alle!

Ich habe ein Datum+Zeit als String vorliegen:
$string = „27.03.2009 15:30:45“;

Nun würde ich gerne diesen mittels der PHP-Funktion date() beliebig formatieren können, bspw. so (einfaches Beispiel, das könnte man auch einfach anhand des Leerzeichens splitten, aber ich will auch bspw. die Wochennummer herausfinden):
date(„d.m.Y“, $string);
Dies liefert aber in meinem Fall immer den 01.01.1970.
Wie kriege ich den String in ein Timestamp-Format, so dass ich sinnvoll die date-Funktion einsetzen kann?

Jemand eine Idee?

Gruß PHANTOM

Hi, Phantom!

Erst mal komplett zerlegen, dann kannst Du einen timestamp draus basteln:

$dats = split(’[.|:expressionless:]’, $string);
$tStamp = mktime($dats[3], $dats[4],$dats[5], $dats[2], $dats[0], $dats[1]);

Achtung: das Leerzeichen im regulären Ausdruck ist nicht besonders elegant und leicht Fehleranfällig. Vielleicht kennt einer der Regex-Experten hier den korrekten Ausdruck?

Gruß, Caro

Hab’s gefunden. So sieht das korrekte Suchmuster aus:

[.|:expressionless:\s]

Gruß, Caro

Hallo an alle!

Ich habe ein Datum+Zeit als String vorliegen:
$string = „27.03.2009 15:30:45“;

Nun würde ich gerne diesen mittels der PHP-Funktion date()
beliebig formatieren können,

http://php.net/date_parse

danach wie beschrieben mit mktime weiter…

Hallo!

Danke für deine Antwort:
Mit beiden regulären Ausdrücken habe ich es probiert, kommt aber jeweils 01.01.1970 geraus:

<?php $string = "27.03.2009 15:30:45";<br />$dats = split('[\.|:expressionless:\s]', $string);
$tStamp = mktime($dats[3], $dats[4],$dats[5], $dats[2], $dats[0], $dats[1]);

echo date("d.m.Y", $tStamp);
?\>

Gruß PHANTOM

Vielen Dank für die Antwort.

Diese PHP-Funktion war mir unbekannt gewesen. Leider kann ich sie auch nicht benutzen, da ich zwar bei mir lokal > 5.2.0 einsetze, aber auf dem Server läuft leider noch 4.4.9.

Sorry, war meine schuld! Hätte ich erwähnen soll.

Gruß PHANTOM

Hallo Phantom,

das funktioniert mit strtotime() bestens.

echo date(‚r‘, strtotime(‚27.03.2009 15:30:45‘));

Gruss
Stefan

Funktioniert, Danke!
Das funktioniert bestens.

Vielen Dank + Gruß PHANTOM

Hallo

Ich habe ein Datum+Zeit als String vorliegen:
$string = „27.03.2009 15:30:45“;
Nun würde ich gerne diesen mittels der PHP-Funktion date()
beliebig formatieren können, bspw. so (einfaches Beispiel, das
könnte man auch einfach anhand des Leerzeichens splitten, aber
ich will auch bspw. die Wochennummer herausfinden):
date(„d.m.Y“, $string);
Dies liefert aber in meinem Fall immer den 01.01.1970.
Wie kriege ich den String in ein Timestamp-Format, so dass ich
sinnvoll die date-Funktion einsetzen kann?

Stefan hat ja bereits die Lösung beschrieben,
falls strtotime nicht eingesetzt werden kann,
müßte man jedoch nach diesem Muster verfahren:

 ...
 list($T, $M, $J, $h, $m, $s) = preg\_split('/\D+/', $datum);
 $tstamp = mktime($h, $m, $s, $M, $T, $J);
 ...

Grüße

CMБ