MySQL & PHP: различия в работе unix_timestamp() и time()
Четверг, 24th Апрель 2008 |Сейчас столкнулся с тем, что функции MySQL и PHP которые по-идее должны возвращать одинаковые значения (количество секунд, прошедшее с начала UNIX-эпохи) на самом деле отличаются ровно на 1 час.
Видимо это связано с тем что сейчас идет летнее время, и у меня в Windows XP выбрана часовая зона с поддержкой летнего времени. Такой вывод я сделал потому, что раньше оно не глючило а изменилось тока то что у меня летнее время приключилось.
У меня сломался код, где я читаю поле из базы, которое заполняется функцией unix_timestamp(), и затем передаю это значение в PHP-функцию date(). В итоге имеем час расхождения (+1 час). Пришлось сделать тупой хак (код сильно править не хотелось), – читаю из базы не значение поля а результат его обработки в from_unixtime() а затем, эту строку привожу к unixtimestamp PHP-функцией strtotime().
Вывод: лучше все присвоения “текущей даты” в базу делать из PHP, меньше вероятность что вы наткнетесь на что-то такое, странное.
Проверялось на PHP версий 4.3.11 и 5.2.1, MySQL версии 4.1.11-nt

Меня зовут Владимир. Я живу в России, в 