Обновление базы временных поясов в PHP

123
[umka]
На сайте с 25.05.2008
Offline
456
#11
iHead:
я думаю, что они мускуль непередернули седня. в нем что-то обновлять отдельно не надо. по крайней мере у меня он подхватил системное время после рестарта.
проблема в том, что в первый раз не очевидно, какой софт требует шаманства, какой рестарта, а какой все сам подхватывает.

Как не надо? Тоже надо, он как и пхп содержит свою базу таймзон.

По-идее, вот этот запрос

SET SESSION time_zone = 'Europe/Moscow';

SELECT FROM_UNIXTIME(1319932800);

на машине с новой таймзоной Europe/Moscow и на машине со старой таймзоной должен выдать разные результаты.

Лог в помощь!
iHead
На сайте с 25.04.2008
Offline
137
#12
'[umka:
;9602713']Как не надо? Тоже надо, он как и пхп содержит свою базу таймзон.
По-идее, вот этот запрос
SET SESSION time_zone = 'Europe/Moscow';
SELECT FROM_UNIXTIME(1319932800);
на машине с новой таймзоной Europe/Moscow и на машине со старой таймзоной должен выдать разные результаты.

у вас какая версия MySQL?

SELECT NOW()

без всяких SET что показывает?

iHead добавил 30.10.2011 в 17:57

MySQL использует файлы

/usr/share/zoneinfo, которые скорее относятся к ОС.

Если в ОС установлен правильное время, то MySQL ковырять не нужно.

ИМХО :)

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
[umka]
На сайте с 25.05.2008
Offline
456
#13
iHead:
у вас какая версия MySQL?
SELECT NOW()
без всяких SET что показывает?

Версия 5.1.48 показывает текущее московское время, т.к. это системная таймзона.

iHead:
iHead добавил 30.10.2011 в 17:57
MySQL использует файлы
/usr/share/zoneinfo, которые скорее относятся к ОС.
Если в ОС установлен правильное время, то MySQL ковырять не нужно.
ИМХО :)

"Не не не, Дэвид Блейн", он использует свои таблицы, которые в базе данных "mysql"

time_zone

time_zone_leap_second

time_zone_name

time_zone_transition

time_zone_transition_type

С отображением текущего времени проблем может и не быть, то при работе с DATE/TIME функциями они выползут.

N
На сайте с 06.05.2007
Offline
419
#14
[umka:
;9602713]Как не надо? Тоже надо, он как и пхп содержит свою базу таймзон.

Может содержать, но многим это не нужно. По крайней мере в чистых инсталляциях на убунту и centos эти таблицы есть, но они пустые.

Тут вопрос в том нужны ли вам вообще эти сложные вычисления в разных таймзонах одновременно. В большинстве случае mysql будет прекрасно работать с системной базой.

Кнопка вызова админа ()
iHead
На сайте с 25.04.2008
Offline
137
#15
netwind:
Может содержать, но многим это не нужно. По крайней мере в чистых инсталляциях на убунту и centos эти таблицы есть, но они пустые.
Тут вопрос в том нужны ли вам вообще эти сложные вычисления в разных таймзонах одновременно. В большинстве случае mysql будет прекрасно работать с системной базой.

В FreeBSD аналогично: таблицы есть, но они пустые.

[umka]
На сайте с 25.05.2008
Offline
456
#16
netwind:
Тут вопрос в том нужны ли вам вообще эти сложные вычисления в разных таймзонах одновременно. В большинстве случае mysql будет прекрасно работать с системной базой.

Точно не могу сказать, но мне кажется, что много приложений работает с датами непосредственно в MySQL, чтобы не конвертировать потом в php (или где-то ещё).

[umka] добавил 30.10.2011 в 18:42

iHead:
В FreeBSD аналогично: таблицы есть, но они пустые.

Видимо, это зависит не от оси, а от каких-нибудь опций при установке.

Смотрю серваки на фре, везде таблицы заполнены.

iHead
На сайте с 25.04.2008
Offline
137
#17
'[umka:
;9602861']Видимо, это зависит не от оси, а от каких-нибудь опций при установке.
Смотрю серваки на фре, везде таблицы заполнены.

в исходниках в папке scripts есть файлик mysql_test_data_timezone.sql

но смущает слово test в названии, да и данных там как-то маловато.

в /usr/local/share/mysql, куда копируются при установке некоторые файлы из папки scripts этого файла нет вовсе. наверное, надо мануалы MySQL смотреть за подробностями.

[umka]
На сайте с 25.05.2008
Offline
456
#18

Там есть скрипт "mysql_tzinfo_to_sql" :)

iHead
На сайте с 25.04.2008
Offline
137
#19
'[umka:
;9602908']Там есть скрипт "mysql_tzinfo_to_sql" :)

да, верно.

в мануале написано, что по дефолту данные не заливаются после установки. далее идет фраза что это необязательная процедура, а еще далее вы "должны" залить.

в общем, разработчики, походу сами не определились нужна данная функциональность или нет.

вот тут написано, что если записей 0, то никто не сможет использовать именованные временные зоны и в этом случае обновление не требуется. а если записи есть, то обновлять надо.

Mage1
На сайте с 05.07.2007
Offline
83
#20
iHead:

если на FreeBSD не обновляется (как у меня)

Подскажите, где взять верный файл /usr/share/zoneinfo/Europe/Moscow

FreeBSD уж обновлял, а время все равно на час отстает :( (в /etc/localtime копировал)

123

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