Учти это. На своем сервере я конвертирую временную строку (UTC / GMT) следующим образом:
strtotime('Fri Feb 18 21:08:38 +0000 2011')
Мой сервер возвращается
1298063318
Это правильно, поскольку все unix timestamp конвертеры что я тестировал, возвращаю то же самое. И наоборот, если я вставлю не дату, а метку времени, мне вернется строка времени, как указано выше. Но если я конвертирую метку времени на моем сервере:
date("Y-m-d H:i:s", 1298063318);
Я возвращаюсь на другую дату, чем ожидалось («Пт, 18 февраля, 21:08:38 +0000 2011»):
2011-02-18 22:08:38
Так что час перестал. Вероятно, это связано с тем, что часовой пояс моих серверов установлен на Europe / Paris, и, таким образом, он переводит метку времени в UTC / GTM + 1. Но MySQL, работающий на том же сервере и имеющий тот же часовой пояс, дает мне другой результат:
SELECT FROM_UNIXTIME(1298063318) = 2011-02-18 22:08:15
Другими словами, он выключен на 18 секунд. Кто-нибудь может объяснить почему?