2009-06-25 3 views
4

Пока я работаю над обновлением пользовательского интерфейса для клиента, я заметил, что даты, связанные со всеми статьями, отсутствовали на один день. Я подумал, что во время моих изменений я что-то прикрутил, но, конечно, бросил вместе небольшой тестовый файл php, который дал мне некоторые нечетные результаты. Файл теста просто;Должны ли разные серверы переводить временные метки unix как разные даты?

<?php 
$date = 1246053600; 
echo 'unix: ',$date,', converted: ',date('d/m/Y', $date); 
?> 

Если я запускаю приведенный выше код на моем локальном хосте я получаю:

Unix: 1246053600, превращенного: 26/06/2009

Но если я запускаю его на производственный сервер Я получаю:

unix: 1246053600, преобразованный: 27/06/2009

Обратите внимание, что разница в дне между двумя? Что тут происходит?! Разумеется, преобразование временной метки unix в дату не имеет каких-либо зависимых от сервера зависимостей?

ответ

4

Ваши серверы могут быть настроены на два разных часовых пояса, и они интерпретируют метку времени как количество секунд с полуночи 1 января 1970 года. GMT. Даты не могут быть отключены целым днем, но всего лишь часть дня, достаточно, чтобы пересечь границу полуночи.

+0

Это оказалось именно это; настройки часового пояса на рабочем сервере * просто * натолкнули дату на следующий день. – Mathew

1

У меня была аналогичная проблема раньше. Я обнаружил, что часовой пояс в php.ini с моей машины разработки отличается от рабочего сервера.

Я бы сказал, что стоит проверить это.

4

Проблема в том, что значение $ date, которое вы предоставляете, предполагается в UTC. Если вы используете use gmdate, you will get the same result на обоих серверах. В противном случае отображаемая дата и время будут скорректированы в соответствии с часовым поясом серверов. Вы можете использовать O (заглавных ой) код для распечатки часового пояса, чтобы сделать текущую настройку на каждом сервере ясного:

echo 'unix: ',$date,', converted: ',date('d/m/Y O', $date);

+0

+1 для входа в gmdate(); очень удобно! – Mathew

Смежные вопросы