Я работаю над древней системой, написанной на ванильном PHP.
У меня проблемы с конвертацией времени.
В приведенном ниже примере я ожидаю, что метка времени и «красивая дата» будут отражать друг друга:
<?php
date_default_timezone_set( 'Europe/London' );
$timestamp = 1509062400; //Friday, October 27, 2017 12:00:00 AM
$date = new DateTime();
$date->setTimezone( new DateTimeZone( 'Europe/London' ) );
$date->setTimestamp( $timestamp + 3601 );
$date->setTime( 0, 0 );
echo $date->getTimestamp();
echo '<br/>';
echo $date->format( 'Y-m-d H:i:s' );
Однако при запуске этого сценария на сервере результат будет следующим:
Timestamp: 1509058800
Pretty Date: 2017-10-27 00:00:00
Красивая дата представляет 27 октября 00:00, но отметка времени (согласно epochconvertor) представляет 26 октября 23:00.
Я не уверен, почему отметка времени медленная на час. Кто-нибудь может помочь?
Если вы находитесь в Лондоне, то ваша временная метка, скорее всего, в британском летнем времени. Эпоха будет в Гринвиче. BST на час опережает время по Гринвичу.
Других решений пока нет …