Время на сервере и на MySQL

vorona
На сайте с 31.01.2010
Offline
91
7482

Время на Apache и MySQL разное. На сервере стоит киевское время, функция date() выводит киевское время, а вот при записи в БД функция NOW() записывает время на час вперед.

В чем может быть прчина такого? И как избавиться?

Дело в том, что киевское +1, это даже не московское (мск +2), а непонятно какое время...

AGIVEO (http://agiveo.net/) - бесплатная браузерная многопользовательская онлайн игра в жанре футбольного менеджера =)
Great-Antique
На сайте с 21.08.2010
Offline
16
#1

функция date() - это не время на сервере, а время с учетом выставленой timezone в настройках php, а now() - время с учетом выставленной timezone в настройках mysql.

в файле php.ini найдите соответствующую строку и поменяйте на

date.timezone = "Europe/Kiev" (или другую из списка http://www.php.net/manual/en/timezones.europe.php)

Аналогично погуглите как поменять дефолтную таймзону в mysql

Пишу небольшие PHP-скрипты бесплатно. Главное, чтобы интересно было. Блог о PHP-разработке (http://den.girnyk.com) и не только.
vorona
На сайте с 31.01.2010
Offline
91
#2
Great-Antique:
функция date() - это не время на сервере, а время с учетом выставленой timezone в настройках php, а now() - время с учетом выставленной timezone в настройках mysql.

в файле php.ini найдите соответствующую строку и поменяйте на
date.timezone = "Europe/Kiev" (или другую из списка http://www.php.net/manual/en/timezones.europe.php)

Аналогично погуглите как поменять дефолтную таймзону в mysql

Thanks ...

N
На сайте с 06.05.2007
Offline
419
#3

Если не сами настраивали сервер, то вопрос следует задать тому, кто вам услугу mysql-сервера предоставляет. Изменить-то параметры вы не сможете все равно.

Разве что найти на стороне клиента какое-то обходное решение. Например, с помощью оператора set time_zone= выставить подходящую зону, пусть и не имеющую отношения к Украине.

Кнопка вызова админа ()

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий