2013-08-20 5 views
0

У меня есть большая центральная база данных MySQL. До сих пор я использовал временные метки unix для хранения дат/времени.Временные метки, часовые пояса и дневные сбережения

Все это работало до тех пор, пока несколько месяцев назад, когда внезапно появилось много данных, которые извлекаются из базы данных. Я проверил базу данных, и все было там, без изменений.

Приложения I, созданные четки вниз ко второму, и когда Daylights сбережение взяло на себя, это в моем приложении отключения 3599 секунд (3600 секунд в часе)

Я пытаюсь получить мою голову вокруг часовые пояса/дневные сбережения и т. д. и пытаются понять концепции немного !!

Все мои файлы PHP установлены в часовой пояс Europe/London. Все даты, время и т. Д. В моей базе данных хранятся как временные метки unix (целые числа).

Должен ли я преобразовать все временные метки в тип поля datetime()? Или есть способ избежать экономии дневного света? Если я переключусь на UTC, мне нужно будет отрегулировать любую временную метку?

Любые советы приветствуются.

+0

возможный дубликат [Переход на летнее время и часовой пояс лучшие практики] (http://stackoverflow.com/questions/2532729/daylight-saving-time-and-time- zone-best-practices) – vascowhite

ответ

1

Вы можете сохранить свои временные метки unix в своей базе данных без изменений.

Это ваше приложение, которое меняет время восстановления на серверное время, Европа/Лондон в вашем случае, который реализует DST, как вам известно.

Установите ваш сервер в UTC и начните использовать классы DateTime, чтобы избежать этих проблем в будущем.

Также убедитесь, чтобы установить default timezone to UTC in php.ini

+0

Спасибо за ответ, @vascowhite. Я ранее проверил ссылку, размещенную в исходном комментарии к комментариям, но только кратко. К сожалению, мне просто не кажется, что у меня голова вокруг времени! Я рассмотрю класс DateTime. –

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