PHP: DateTime::createFromFormat() mit timezone
Ich will convert date form von d/m/Y zu Y-m-d mit timezone offset.
Ich bin in der Lage, konvertieren von d/m/Y zu Y-m-d mit diesem code:
$date = DateTime::createFromFormat('d/m/Y', $date);
$date = $date->format('Y-m-d');
Aber ich bin nicht sicher, wie Sie Sie hinzufügen, um die Zeitzone offset.
InformationsquelleAutor yoshi | 2014-06-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie einfach
DateTime::setTimeZone()
:+2:00
stattAmerica/New_York
? Ich weiß, Sie verwenden sollten, Zeitzonen und nicht kompensiert, da der Sommerzeit usw. aber auf diese Umgebung Zeitzonen wieAmerica/New_York
nicht arbeiten.Sehen Sie, wenn Sie Antwort tut, was Sie brauchen
Nur um zu klären. Dies gilt konvertieren ein Datum (user-Eingabe-und Anwender-Zeitzone), um die server-Zeitzone. So
America/New_York
ist die Zeitzone des Benutzers?Beachten Sie, dass dieses Beispiel erstellt zuerst
$date
in der server-Zeitzone, und dann, wennsetTimeZone()
aufgerufen wird, konvertiert, um "Amerika/New_York". In anderen Worten, es führt eine Zeit-Komponente -$date
ist nicht mehr Mitternacht. Könnte nicht eine große Sache für einige, aber es war für mich!Diese Antwort ist schlicht falsch, wie rinogo angegeben.
InformationsquelleAutor John Conde
(PHP 5 >= 5.3.0)
Sie tatsächlich geben Sie den Dritten parameter
Es funktioniert bei mir nicht.. Es scheint, wie im Dritten parameter (
DateTimeZone
Objekt) wurde einfach ignoriert. Der einzige Weg dies zu erreichen, war der Einsatz des validierten Antwort veröffentlicht von @John Conde, ich bin PHP 5.6.30Dies funktioniert wie beschrieben, wenn man $tz, um die richtige Zeitzone, aber Sie müssen es manuell zu tun. neue \DateTimeZone(date_default_timezone_get()) setzt die Standardeinstellung des Systems.
Der 3. parameter ist absolut bipkis.
InformationsquelleAutor denoise