Перейти к публикации

Часовые пояса (DLE 10.3)


Рекомендованные сообщения

Здравствуйте!

Хочу обратить Ваше внимание, что, во-первых, Москва переехала на GMT +3, во-вторых, в России вновь произошли деления часовых поясов.

Прошу это учесть и предложить срочное исправление этой проблемы.

С уважением,

Александр.

Ссылка на сообщение
Поделиться на других сайтах

Хочу обратить Ваше внимание, что, во-первых, Москва переехала на GMT +3

DLE не использует в своей работе никаких указаний GMT, это лишь визуальное отображение. DLE использует определения часовых поясов предусмотренных PHP интерпретатором. Обновите серверное ПО, в частности tzdata и все заработает автоматически, править со стороны скрипта тут нечего, кроме визуального отображения, это будет конечно внесено в следующие версии.

во-вторых, в России вновь произошли деления часовых поясов.

Все часовые пояса специально выведены в языковые файлы. Вы можете добавить нужные вам в языковые файлы adminpanel.lng и website.lng в строках


$langtimezones = array(
'Pacific/Midway' => "(GMT-11:00) Остров Мидуэй",
'US/Samoa' => "(GMT-11:00) Самоа",
'US/Hawaii' => "(GMT-10:00) Гавайи",
'US/Alaska' => "(GMT-09:00) Аляска",
'US/Pacific' => "(GMT-08:00) Тихоокеанское время (США и Канада)",
'America/Tijuana' => "(GMT-08:00) Тихуана",
'US/Arizona' => "(GMT-07:00) Аризона",
'US/Mountain' => "(GMT-07:00) Горное время (США и Канада)",
'America/Chihuahua' => "(GMT-07:00) Чихуахуа",
'America/Mazatlan' => "(GMT-07:00) Масатлан",
'America/Mexico_City' => "(GMT-06:00) Мехико",
'America/Monterrey' => "(GMT-06:00) Монтеррей",
'US/Central' => "(GMT-06:00) Центральное время (США и Канада)",
'US/Eastern' => "(GMT-05:00) Восточное время (США и Канада)",
'US/East-Indiana' => "(GMT-05:00) Индиана (Восток)",
'America/Lima' => "(GMT-05:00) Лима, Богота",
'America/Caracas' => "(GMT-04:30) Каракас",
'Canada/Atlantic' => "(GMT-04:00) Атлантическое время (Канада)",
'America/La_Paz' => "(GMT-04:00) Ла-Пас",
'America/Santiago' => "(GMT-04:00) Сантьяго",
'Canada/Newfoundland' => "(GMT-03:30) Ньюфаундленд",
'America/Buenos_Aires' => "(GMT-03:00) Буэнос-Айрес",
'Greenland' => "(GMT-03:00) Гренландия",
'Atlantic/Stanley' => "(GMT-02:00) Стэнли",
'Atlantic/Azores' => "(GMT-01:00) Азорские острова",
'Africa/Casablanca' => "(GMT) Касабланка",
'Europe/Dublin' => "(GMT) Дублин",
'Europe/Lisbon' => "(GMT) Лиссабон",
'Europe/London' => "(GMT) Лондон",
'Europe/Amsterdam' => "(GMT+01:00) Амстердам",
'Europe/Belgrade' => "(GMT+01:00) Белград",
'Europe/Berlin' => "(GMT+01:00) Берлин",
'Europe/Bratislava' => "(GMT+01:00) Братислава",
'Europe/Brussels' => "(GMT+01:00) Брюссель",
'Europe/Budapest' => "(GMT+01:00) Будапешт",
'Europe/Copenhagen' => "(GMT+01:00) Копенгаген",
'Europe/Madrid' => "(GMT+01:00) Мадрид",
'Europe/Paris' => "(GMT+01:00) Париж",
'Europe/Prague' => "(GMT+01:00) Прага",
'Europe/Rome' => "(GMT+01:00) Рим",
'Europe/Sarajevo' => "(GMT+01:00) Сараево",
'Europe/Stockholm' => "(GMT+01:00) Стокгольм",
'Europe/Vienna' => "(GMT+01:00) Вена",
'Europe/Warsaw' => "(GMT+01:00) Варшава",
'Europe/Zagreb' => "(GMT+01:00) Загреб",
'Europe/Athens' => "(GMT+02:00) Афины",
'Europe/Bucharest' => "(GMT+02:00) Бухарест",
'Europe/Helsinki' => "(GMT+02:00) Хельсинки",
'Europe/Istanbul' => "(GMT+02:00) Стамбул",
'Asia/Jerusalem' => "(GMT+02:00) Иерусалим",
'Europe/Kiev' => "(GMT+02:00) Киев",
'Europe/Minsk' => "(GMT+02:00) Минск",
'Europe/Riga' => "(GMT+02:00) Рига",
'Europe/Sofia' => "(GMT+02:00) София",
'Europe/Tallinn' => "(GMT+02:00) Таллин",
'Europe/Vilnius' => "(GMT+02:00) Вильнюс",
'Asia/Baghdad' => "(GMT+03:00) Багдад",
'Asia/Kuwait' => "(GMT+03:00) Кувейт",
'Africa/Nairobi' => "(GMT+03:00) Найроби",
'Asia/Tehran' => "(GMT+03:30) Иран, Тегеран",
'Europe/Moscow' => "(GMT+04:00) Москва",
'Europe/Volgograd' => "(GMT+04:00) Волгоград",
'Asia/Baku' => "(GMT+04:00) Баку",
'Asia/Muscat' => "(GMT+04:00) Абу-Даби, Маскат",
'Asia/Tbilisi' => "(GMT+04:00) Тбилиси",
'Asia/Yerevan' => "(GMT+04:00) Ереван",
'Asia/Kabul' => "(GMT+04:30) Афганистан, Кабул",
'Asia/Tashkent' => "(GMT+05:00) Ташкент, Карачи",
'Asia/Kolkata' => "(GMT+05:30) Бомбей, Калькутта, Мадрас, Нью-Дели, Коломбо",
'Asia/Kathmandu' => "(GMT+05:45) Катманду",
'Asia/Yekaterinburg' => "(GMT+06:00) Екатеринбург",
'Asia/Almaty' => "(GMT+06:00) Алматы, Астана",
'Asia/Novosibirsk' => "(GMT+07:00) Новосибирск",
'Asia/Jakarta' => "(GMT+07:00) Бангкок, Ханой, Джакарта",
'Asia/Krasnoyarsk' => "(GMT+08:00) Красноярск",
'Asia/Hong_Kong' => "(GMT+08:00) Гонконг, Чунцин",
'Asia/Kuala_Lumpur' => "(GMT+08:00) Куала-Лумпур",
'Asia/Singapore' => "(GMT+08:00) Сингапур",
'Asia/Taipei' => "(GMT+08:00) Тайбэй",
'Asia/Ulaanbaatar' => "(GMT+08:00) Улан-Батор",
'Asia/Urumqi' => "(GMT+08:00) Урумчи",
'Asia/Irkutsk' => "(GMT+09:00) Иркутск",
'Asia/Seoul' => "(GMT+09:00) Сеул",
'Asia/Tokyo' => "(GMT+09:00) Токио, Осака, Саппоро",
'Australia/Adelaide' => "(GMT+09:30) Аделаида",
'Australia/Darwin' => "(GMT+09:30) Дарвин",
'Asia/Yakutsk' => "(GMT+10:00) Якутск",
'Australia/Brisbane' => "(GMT+10:00) Брисбен",
'Pacific/Port_Moresby' => "(GMT+10:00) Гуам, Порт-Морсби",
'Australia/Sydney' => "(GMT+10:00) Мельбурн, Сидней, Канберра",
'Asia/Vladivostok' => "(GMT+11:00) Владивосток",
'Asia/Magadan' => "(GMT+12:00) Магадан, Камчатка",
'Pacific/Auckland' => "(GMT+12:00) Окленд, Веллингтон",
'Pacific/Fiji' => "(GMT+12:00) Фиджи, Маршалловы о.",
);
[/CODE]

Где собственно например Europe/Moscow это и есть указание часового пояса с которым работать скрипт и сервер должен. Добавляйте нужные недостающие пояса.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Применение таких зон как:


Europe/Samara +4

Pacific/Guadalcanal +11

Asia/Srednekolymsk +11

Asia/Anadyr +12

Asia/Kamchatka +12

Pacific/Tongatapu +13

Pacific/Apia +14
сбрасывает пользователя на серверное время, т.е. в профиле он не может указать эти часовые пояса. При чём если в админке указать например Asia/Kamchatka (в админке устанавливается правильно), а в профиле будет по умолчанию, то у него всё равно будет серверное время. На сервере проблем вроде нет (PHP 5.5.18-1~dotdeb.1):

# php -r 'date_default_timezone_set("Europe/Samara"); echo "\n".date ("P",1414789200)."\n\n";'

+04:00

# php -r 'date_default_timezone_set("Pacific/Guadalcanal"); echo "\n".date ("P",1414789200)."\n\n";'

+11:00

# php -r 'date_default_timezone_set("Asia/Srednekolymsk"); echo "\n".date ("P",1414789200)."\n\n";'

+11:00

# php -r 'date_default_timezone_set("Asia/Anadyr"); echo "\n".date ("P",1414789200)."\n\n";'

+12:00

# php -r 'date_default_timezone_set("Asia/Kamchatka"); echo "\n".date ("P",1414789200)."\n\n";'

+12:00

# php -r 'date_default_timezone_set("Pacific/Tongatapu"); echo "\n".date ("P",1414789200)."\n\n";'

+13:00

# php -r 'date_default_timezone_set("Pacific/Apia"); echo "\n".date ("P",1414789200)."\n\n";'

+14:00

Ссылка на сообщение
Поделиться на других сайтах

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

Языковой файл для сайта website.lng вы изменили также как и файл админпанели?

И сайт и админпанель используют одни и тоже настройки сайта, если на сайте есть аномалии, а в админпанели нет, то возможно вы обновили не все файлы скрипта, и часть у вас от старых версий, где нет использования часовых поясов.

Ссылка на сообщение
Поделиться на других сайтах

Чисто установленный дистрибутив, шаблон Default, правок файлов двига нет, строки зон в .lng файлах одинаковые.

Добавляю например:

	 'Europe/Samara'		=> "(GMT+04:00) Ижевск, Самара",[/CODE]

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

Ссылка на сообщение
Поделиться на других сайтах

Captain,

Подождите я сейчас не совсем понимаю суть проблемы. DLE использует обычную установку зоны date_default_timezone_set, сначала он устанавливает эту зону по умолчанию из настроек скрипта. У пользователя когда он выбирает свою зону, сдвигается время только у новостей и комментариев при их показе. Причем если включен кеширование, то например время он уже будет из кеша, это применительно к кратким новостям. В полной и комментариев кеша нет, плюс смещение делается относительно времени когда новость была добавлена и относительно того часового пояса на котором она была добавлена. Для посетителя сайта не применяется отдельное date_default_timezone_set для него сдвигается только время у новостей и комментариев, причем для кратких новостей оно может и не сдвинуться из за кеширования. А если не устанавливается системное время из настроек, то нет поддержки данной зоны уже в серверном ПО.

Ссылка на сообщение
Поделиться на других сайтах

Так я про новости и комментарии и говорю, но выше мною перечисленные зоны пользователь с сайта не может установить для себя, в админ панели эти зоны устанавливаются корректно, но если поставить в админке например Europe/Samara, то у пользователя на сайте будет по умолчанию Europe/Moscow (серв. время).

Проверка сервера командой, например для Europe/Samara

# php -r 'date_default_timezone_set("Europe/Samara"); echo "\n".date ("P",1414789200)."\n\n";[/CODE]

даёт правильный результат +4.

Я вам сейчас доступы скину, проверьте пожалуйста на зоне "Самара, Ижевск", я её поставил для проверки.

Ссылка на сообщение
Поделиться на других сайтах

Прошу прощения. В теме на форуме я совершенно забыл, что для того чтобы принимались новые часовые пояса в профиле нужно внести новые пояса в список корректных в файлах engine/modules/profile.php и engine/modules/functions.php в строчке


$timezones = array('Pacific/Midway','US/Samoa','US/Hawaii','US/Alaska','US/Pacific','America/Tijuana','US/Arizona','US/Mountain','America/Chihuahua','America/Mazatlan','America/Mexico_City','America/Monterrey','US/Central','US/Eastern','US/East-Indiana','America/Lima','America/Caracas','Canada/Atlantic','America/La_Paz','America/Santiago','Canada/Newfoundland','America/Buenos_Aires','Greenland','Atlantic/Stanley','Atlantic/Azores','Africa/Casablanca','Europe/Dublin','Europe/Lisbon','Europe/London','Europe/Amsterdam','Europe/Belgrade','Europe/Berlin','Europe/Bratislava','Europe/Brussels','Europe/Budapest','Europe/Copenhagen','Europe/Madrid','Europe/Paris','Europe/Prague','Europe/Rome','Europe/Sarajevo','Europe/Stockholm','Europe/Vienna','Europe/Warsaw','Europe/Zagreb','Europe/Athens','Europe/Bucharest','Europe/Helsinki','Europe/Istanbul','Asia/Jerusalem','Europe/Kiev','Europe/Minsk','Europe/Riga','Europe/Sofia','Europe/Tallinn','Europe/Vilnius','Asia/Baghdad','Asia/Kuwait','Africa/Nairobi','Asia/Tehran','Europe/Moscow','Europe/Volgograd','Asia/Baku','Asia/Muscat','Asia/Tbilisi','Asia/Yerevan','Asia/Kabul','Asia/Tashkent','Asia/Kolkata','Asia/Kathmandu','Asia/Yekaterinburg','Asia/Almaty','Asia/Novosibirsk','Asia/Jakarta','Asia/Krasnoyarsk','Asia/Hong_Kong','Asia/Kuala_Lumpur','Asia/Singapore','Asia/Taipei','Asia/Ulaanbaatar','Asia/Urumqi','Asia/Irkutsk','Asia/Seoul','Asia/Tokyo','Australia/Adelaide','Australia/Darwin','Asia/Yakutsk','Australia/Brisbane','Pacific/Port_Moresby','Australia/Sydney','Asia/Vladivostok','Asia/Magadan','Pacific/Auckland','Pacific/Fiji');
[/CODE]

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...