Как получить временную метку unix из объекта DateTime за последний час до переключения на летнее время в PHP?

Есть пример кода

<?php
$dt = new \DateTime();
$dt->setTimezone(new \DateTimeZone('Europe/London'));

$timestamp = 1351383400;    
echo "$timestamp \n";

$dt->setTimestamp($timestamp);
echo $dt->getTimestamp();

который выводит 2 разные отметки времени: 1351383400 (вс, 28 октября 2012 г., 01:16:40 +0100, прямо перед переключением на летнее время) и 1351387000 (вс, 28 октября 2012 г., 01:16). :40 +0000, через 1 час после перехода на летнее время)

Вопрос в том, как я могу заставить метод получения меток времени возвращать мне точно такое же целое число, которое было передано методу установки меток времени 1 строкой ранее?

PHP 5.3.6


person Alex Blex    schedule 26.10.2012    source источник
comment
Я на самом деле думаю, что это ошибка .. Возможно, стоит попробовать сообщить об этом.   -  person Evert    schedule 26.10.2012
comment
Кажется, это правильный ответ. Ошибки №62561, №62896. исправлено в php 5.4   -  person Alex Blex    schedule 29.10.2012


Ответы (1)


Надеюсь это поможет:

    $dt = new DateTime();
    $dt->setTimezone(new \DateTimeZone('Europe/London'));
    $timestamp = 1181503727;
    echo $timestamp . '<br />';

    $dt->setTimestamp($timestamp);
    echo $dt->format('U'); 

вывод: 1181503727 1181503727

person Joe Brown    schedule 26.10.2012