Странное время Преобразование метки времени MySQL - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть поле MySQL, которое дает мне метку времени в формате: YYYY-MM-DD HH:MM:SS.По умолчанию CURRENT_TIMESTAMP.Теперь, когда я пытаюсь преобразовать его в метку времени Unix, я получаю странные результаты.

На самом деле, я использую эту функцию для вычисления относительного времени.Он выводит отрицательные целые числа, хотя временная метка MySQL всего на пару секунд старше.Я в недоумении относительно того, что не так.

Я также обнаружил некоторые странные проблемы.Например, в MySQL

mysql> select from_unixtime(1289206455);
+---------------------------+
| from_unixtime(1289206455) |
+---------------------------+
| 2010-11-08 14:24:15       |
+---------------------------+
1 row in set (0.03 sec)

В PHP CLI:

php -r "echo date('Y-m-d h:m:s', 1289206455);"
2010-11-08 09:11:15

Предполагаемый результат (в обоих случаях) должен быть: 2010-11-08 02:54:15 source .

Так что, похоже, разница во времени в PHP и MySQL.Как я могу их синхронизировать?Я нахожусь на Ubuntu 11.04 XAMPP.

Спасибо

1 Ответ

0 голосов
/ 20 сентября 2011

Вам необходимо установить часовой пояс.

date_default_timezone_set($zone);

http://php.net/manual/en/function.date-default-timezone-set.php

MySQL: http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_time_zone (@Idg спасибо)

...