私はこの問題をトラブルシューティングして解決しようとしています: 私が取り組んでいるサーバー (Linux では php 5.2.9) は、正しい現地時間 (America/Buenos_Aires) を持っています:
user@server [/home/site/public_html]$ date
Mon Nov 1 17:11:14 ART 2010
php.ini
で設定されてdate.timezone = "America/Buenos_Aires"
います また、スクリプトでタイムゾーンを直接設定しようとしました
<?php
ini_set('display_errors', true);
error_reporting(E_ALL|E_STRICT|E_NOTICE);
//date_default_timezone_set("America/Buenos_Aires");
//echo date_default_timezone_get(), "<br>";
echo "ini: ", ini_get('date.timezone'), "<br>";
$now = date("H:i:s T I");
$nowdate = date("Y-m-d");
echo $nowdate." ".$now;
?>
しかし、無駄に、結果は
ini: America/Buenos_Aires
2010-11-01 18:11:14 ARST 1
いつ読むべきか17:11
(一貫して 1 時間先です)。こことウェブで見つけたものはすべて、
- date_default_timezone_set (私が試した)
- php.ini で date.timezone を設定する (設定されている)
- サーバーの時刻とクライアントの時刻を混同しています(私はそうではありません)。
何か案は?
編集: 示唆されたように、私はチェックし、コードでわかるように、PHP は DST を適用する必要があると考えており、アルゼンチンは今年は適用しないことにしました。パッチを待つ以外に選択肢はありますか?
編集 2: 提案されているように、タイムゾーンの遷移をダンプしようとしました。私は以下を得ました:
The timezone America/Buenos_Aires switches to standard time on 20 Mar 2011 @ 02:00.
The new GMT offset will be: -10800 (ART)