Руководство:Часовой пояс

From mediawiki.org
This page is a translated version of the page Manual:Timezone and the translation is 64% complete.

Часовой пояс (tz) по умолчанию для пользователей, которые не изменили свой часовой пояс в настройках в ручную.

Default value

The default value is taken from the webserver configuration (PHP ini file). For documentation:

https://www.php.net/datetime.configuration#ini.date.timezone

Основной метод

Создайте резервную копию файла LocalSettings.php , который можно найти в корне директории установки. Отредактируйте LocalSettings.php, добавив в него следующий код:

#Выберите часовой пояс по умолчанию
$wgLocaltimezone = "Asia/Jakarta";
date_default_timezone_set( $wgLocaltimezone );

См. примеры ниже.

$wgLocaltimezone = "UTC";
$wgLocaltimezone = "Europe/London";
$wgLocaltimezone = "Asia/Taipei";
Этот часовой пояс будет использоваться в:
  • подписях ~~~~
  • метках времени в свежих правках
  • метках времени в истории
Adding this code to the LocalSettings.php conflicts with the RSS Feed dates in Расширение:RRS . See the Discussion page of Extension:RSS for more information

Альтернативный метод

Этот метод подтвердили несколько пользователей, в ситуации, когда основной метод не работал.

$wgLocaltimezone = "America/Sao_Paulo";
$dtz = new DateTimeZone($wgLocaltimezone);
$dt = new DateTime('now', $dtz);
$wgLocalTZoffset = $dtz->getOffset($dt) / 60;
unset($dtz);
unset($dt);

Альтернативный метод

Если вы просто хотите использовать локальное время вашего ПК, добавьте эту строку в LocalSettings.php. Этот метод используется в MediaWiki по умолчанию (см. Includes / Setup.php); также позволяет избежать проблем с переходом на летнее время:

$wgLocalTZoffset = date("Z") / 60;

Неподтвержденные методы

Чтобы использовать ваш часовой пояс (скажем, NZDT), вставьте этот код в LocalSettings.php

$wgLocalTZoffset = 13 * 60;

  • Этот пример может также работать
$wgLocaltimezone="Europe/Berlin";
$wgLocalTZoffset = +120;
  • In this case the primary method did not take daylight savings time into account. The example below works:
#Выберите часовой пояс по умолчанию
$wgLocaltimezone = "Europe/Amsterdam";

#Указать смещение часового пояса от UTC
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 60 + date("I") * 60;
putenv("TZ=$oldtz");

  • To make it work in 1.5.8, specify the offset in hours, so change all occurrences of '/ 60' to '/ 3600', for example.
$wgLocaltimezone = "Europe/Amsterdam";
#Указать смещение часового пояса от UTC
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z") / 3600;
putenv("TZ=$oldtz");

Combine it with the tip above to make daylight savings work.

  • This line is needed in 1.16. It applies to both anonymous and logged in users.

Note that you will need to provide the correct values if you want the zone to be selected by default in the timezone dropdown:

$wgDefaultUserOptions['timecorrection'] = 'ZoneInfo|' . (date("I") ? 120 : 60) . '|Europe/Berlin';
The methods in this section are unconfirmed and may not work properly.

Указание часового пояса вручную

The primary method needs the server to support the 'tz' database; some non-GNU hosts don't do that. However you can supply timezone data manually - unfortunately, only "GMT0" seems to work on Windows.

E.g. use

$wgLocaltimezone = "CET-1CEST-2,M3.5.0/2,M10.5.0/2";
вместо
$wgLocaltimezone = "Europe/Budapest";
или
$wgLocaltimezone = "AEST-9,M10.5.0/3,M4.1.0/3";
вместо
$wgLocaltimezone = "Australia/Sydney";

Подробнее см.