PHP strtotime () функционируют неправильно на 1 час?

Я преобразовываю даты и время в метки времени с помощью PHP, прежде чем они будут вставлены в мою базу данных MySQL.

Моя проблема состоит в том, что, когда я использую функцию strtotime PHP, выходная метка времени является-1 часом позади моего фактического времени.

Например, рассмотрение сегодняшней даты: 21.07.2010. Когда я использую код php как:

<?php
$my_timestamp = strtotime("07/21/2010");
echo $my_timestamp;
?>

Переданной обратно меткой времени является GMT equivilent МИНУС 1 час. т.е. я возвращаюсь: 20 июля 2010 23:00:00 GMT вместо 21 июля 2010 0:00:00 GMT.

Я живу в Великобритании, таким образом, моим часовым поясом является GMT. Я объявил свой часовой пояс в сценарии с помощью date_default_timezone_set ('Европа/Лондон'), и я также удостоверился, что файл php.ini установлен на 'Европу/Лондон'.

Это - что-то, чтобы сделать с летним временем, возможно? Как я могу решить проблему, не добавляя 1 час ко всем моим датам?

14
задан Cristian 21 July 2010 в 21:23
поделиться

3 ответа

Европейское / лондонское время не является временем по Гринвичу при переходе на летнее время. Вам нужно установить его в UTC.

date_default_timezone_set ('UTC');

date_default_timezone_set ('GMT'); может работать, но, как отмечает Кеннет в комментарии ниже, он устарел.

27
ответ дан 1 December 2019 в 13:21
поделиться

Часовой пояс Лондона летом выражается в британском летнем времени. При этом рекомендуется хранить время в UTC и представлять время конечному пользователю либо в UTC, либо в ИХ местном времени.

Также, вероятно, будет разумным убедиться, что ваше системное время - UTC.

1
ответ дан 1 December 2019 в 13:21
поделиться

До PHP 5.3 у strtotime были проблемы с вычислением времени, если вы прибавляли или вычитали месяцы, дни и т.д. Это было исправлено, и теперь вы можете указать, как именно вы хотите рассчитать время. Если у вас PHP ниже версии 5.3, я бы рекомендовал делать расчет даты в mysql или обновить версию PHP.

-9
ответ дан 1 December 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: