mysql unix_timestamp неправильный часовой пояс
Возникли проблемы с функцией UNIX_TIMESTAMP в MySQL.
Настройка: я делаю сайт WordPress на моей локальной машине с Windows и периодически загружаю свои обновления на сервер Ubuntu (page.ly). Существует фрагмент кода, который извлекает столбец datetime из базы данных mysql. Проблема в том, что полученное время правильно на моем локальном компьютере с Windows, но неверно на сервере Ubuntu.
Что я знаю до сих пор, я выполнил несколько запросов в обоих местах, чтобы попытаться воспроизвести проблему.
$wpdb->get_row("SELECT UNIX_TIMESTAMP('2012-07-27 22:15:00')
FROM {$wpdb->posts}"))
это производит правильное время моей локальной машины (1343427300), но неправильно на Ubuntu (1343445300 на 5 часов вперед. мой местный часовой пояс Америка /New_York.).
$wpdb->get_row("SELECT UNIX_TIMESTAMP('2012-07-27 22:15:00')"))
это производит правильное время на обеих машинах. Это похоже на то, как только я связываю свой выбор с таблицей, с любой таблицей в базе данных, время получает смещение часового пояса + смещение летнего времени. Я проверил смещение часового пояса на обеих машинах. они оба 0. Я вроде застрял здесь. ценю любую помощь.
1 ответ
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
UNIX_TIMESTAMP возвращает время UTC, что объясняет разницу в 5 часов, которую вы получаете
Возможно, вы захотите использовать CONVERT_TZ для времени со смещением -05,00 (восток), чтобы получить правильный TIMESTAMP.