Преобразовать метку времени Unix UTC 0 в удобочитаемую дату / время - PullRequest
0 голосов
/ 24 января 2019

У меня есть метка времени Unix, которая сохраняется в UTC 0. Мне нужно преобразовать его в GMT -08:00 ( PST - America LA ).

Мне нужно взять эту временную метку 1546329808471 и преобразовать ее в

Date format - m/d/Y

Time Format h:i a

У меня есть

$time = new DateTime(date('h:i a', $pickup['timestamp']/1000)); // which returns the time in UTC 0.
$date = date('m/d/Y', $pickup['timestamp'] / 1000); // is the date in UTC 0.

возвращение

01/01/2019 в 08:03 am, что верно для UTC 0, но не в PST.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вы можете просто использовать setTimezone() и создать объект класса DateTimeZone для достижения вашего результата.

$pst = new DateTimeZone('America/Los_Angeles');
$time = new DateTime(date('m/d/Y h:i a', $pickup['timestamp']/1000)); 
$time->setTimezone($pst);
print_r($time);

Подробнее об этом можно узнать по здесь

0 голосов
/ 24 января 2019

Сначала необходимо установить часовой пояс по умолчанию, используя date_default_timezone_set , а затем отобразить время / дату, как показано ниже:

date_default_timezone_set('America/Los_Angeles');
$time = new DateTime(date('h:i a', $pickup['timestamp']/1000)); 
$date = date('m/d/Y', $pickup['timestamp'] / 1000);
...