Странное преобразование strtotime временной метки MySQL

У меня есть поле 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

Предполагаемый результат (в обоих случаях) должен быть следующим: ">источник.

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

Спасибо


person abhisek    schedule 20.09.2011    source источник


Ответы (1)


Вам нужно установить часовой пояс.

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, спасибо)

person Atticus    schedule 20.09.2011
comment
для mysql: dev.mysql.com/doc /refman/5.5/ru/ - person ldg; 20.09.2011