2016-08-16 10 views
5

Używam tego kodu, aby wygenerować wczorajszy początek dnia w PST (aka America/Los_Angeles). Nie mogę wymyślić, jak przekonwertować wynik na UTC.PHP konwertuje wynik mktime do UTC

date_default_timezone_set("America/Los_Angeles"); 
$time1 = date("Y-m-d H:i:s", mktime(0,0,0, date('n'), date('j')-1, date('Y'))); 

Próbowałem tego, ale $ time1 nie jest datetime, to string. Tak więc poniższe elementy nie będą działać.

klasa
$time1->setTimezone(new DateTimeZone("UTC")); 

Odpowiedz

5

DateTime może zrobić wszystko to dla ciebie

$date = new DateTime(null, new DateTimeZone('America/Los_Angeles')); // will use now 

echo $date->format('d/m/Y H:i:s'); //16/08/2016 16:13:29 

$date->setTime(0,0,0); 
$date->modify('-1 day'); 
echo $date->format('d/m/Y H:i:s'); // 15/08/2016 00:00:00 

$date->setTimezone(new DateTimeZone('UTC')); 
echo $date->format('d/m/Y H:i:s'); // 15/08/2016 07:00:00 
+0

Teraz to godny próbki kodu ... rozważyć publikuje w sekcji dokumentów :). – YvesLeBorg

+0

@YvesLeBorg Dlaczego dziękuje panu – RiggsFolly