У меня есть метка времени, которую я пытаюсь преобразовать в другой часовой пояс. При этом мне нужно взять DST для учета.Временные метки PHP DateTime неверны
код Я использую ниже:
$date = new DateTime("@".$timestamp);
echo $date->format('Y-m-d H:i:s')."\r\n";
$date->setTimezone(new DateTimeZone('Europe/Paris'));
echo $date->format('Y-m-d H:i:s')."\r\n"; // Pacific time
$date->setTimezone(new DateTimeZone('Europe/Athens'));
echo $date->format('Y-m-d H:i:s')."\r\n"; // Berlin time
Выходной сигнал (который является правильным) является:
2014-01-30 20:24:48
2014-01-30 21:24:48
2014-01-30 22:24:48
Однако, если изменить формат на «U», которое является значением, используемым в Date(), чтобы получить временные метки следующий вывод: это
1391113488
1391113488
1391113488
Почему метки времени, не выходит с часового пояса fset применяется к ним?
Unix метки времени всегда в UTC –
Потому что они выходят в Unix метки времени (это то, что дает 'формат U') которые не имеют часовой пояс, но являются UTC –
Определение отметки времени UNIX: секунды с полуночи 1 января 1970 UTC. Как бы временные диаграммы фигурировали в этом определении? – deceze