Manual:タイムゾーン

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Timezone and the translation is 25% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎română • ‎Ελληνικά • ‎русский • ‎中文 • ‎日本語

個人設定で設定を行っていない利用者に指定される既定のタイムゾーン (tz) を手動で設定できます。

Primary method

  • インストールディレクトリにある LocalSettings.php のバックアップを作成します。
  • LocalSettings.php に次のコードを追加してください
#既定のタイムゾーンを設定
$wgLocaltimezone = "Asia/Jakarta";
date_default_timezone_set( $wgLocaltimezone );
  • Set the $wgLocaltimezone value to the proper value which you can find here. 下記の例も参照してください。
$wgLocaltimezone = "UTC";
$wgLocaltimezone = "Europe/London";
$wgLocaltimezone = "Asia/Taipei";
このタイムゾーンは次の場所で使用されます。
  • ~~~~ の署名
  • 最近の更新に表示されるタイムスタンプ
  • 履歴に表示されるタイムスタンプ
Adding this code to the LocalSettings.php conflicts with the RSS Feed dates in Extension:RSS . See the Discussion page of Extension:RSS for more information

Alternative method

This method has been confirmed by multiple users in situations where the primary method has not worked.

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

Alternative methods

If you just want to use the local time of your PC, you can add this line in your LocalSettings.php. This method is what MediaWiki does by default (see includes/Setup.php); it also avoids problems with daylight savings time:

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

Unconfirmed methods

  • To use your local time zone (say NZDT) put this in LocalSettings.php
$wgLocalTZoffset = 13 * 60;

  • This example may also work
$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";

#Calculate the timezone offset with 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";
#Calculate the timezone offset with 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.

Manual timezone specification

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";
instead of
$wgLocaltimezone = "Europe/Budapest";
or
$wgLocaltimezone = "AEST-9,M10.5.0/3,M4.1.0/3";
instead of
$wgLocaltimezone = "Australia/Sydney";

For details see