parse - php time 1 tag




Wie konvertiert man zwischen Zeitzonen in PHP mit der DateTime-Klasse? (2)

Ich versuche, die Zeit zwischen der aktuellen Zeit in UTC und UTC in die aktuelle Zeitzone zu konvertieren.

Hier ist was ich getan habe:

$schedule_date = new DateTime($triggerOn, new DateTimeZone('UTC') );
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

echo $triggerOn;

Der Ausgabewert ändert nicht das einzige, was sich im Format ändert.

Der String $triggerOn wurde basierend auf der Zeitzone America/Los_Angeles generiert

So sieht meine Saite vorher und nachher aus:

BEFORE    04/01/2013 03:08 PM
AFTER     2013-04-01 15:08:00

Das Problem hier ist, dass DateTime nicht in UTC konvertiert.


Erstellen Sie das Datum mithilfe der lokalen Zeitzone, und rufen DateTime::setTimeZone() dann DateTime::setTimeZone() auf, um es zu ändern.


Sie verbrauchen Datum und Uhrzeit und stellen die Zeitzone korrekt ein. Vor dem Formatieren der Datums- und Uhrzeiteinstellung wird jedoch nicht die gewünschte Ausgabezeitzone festgelegt. Hier ist ein Beispiel, das eine UTC-Zeitzone akzeptiert und das Datum / die Uhrzeit in die Zeitzone America / Los_Angeles konvertiert:

<?php
$original_datetime = '04/01/2013 03:08 PM';
$original_timezone = new DateTimeZone('UTC');

// Instantiate the DateTime object, setting it's date, time and time zone.
$datetime = new DateTime($original_datetime, $original_timezone);

// Set the DateTime object's time zone to convert the time appropriately.
$target_timezone = new DateTimeZone('America/Los_Angeles');
$datetime->setTimeZone($target_timezone);

// Outputs a date/time string based on the time zone you've set on the object.
$triggerOn = $datetime->format('Y-m-d H:i:s');

// Print the date/time string.
print $triggerOn; // 2013-04-01 08:08:00






timezone