次のスクリプトは、呼び出した後に間違った時間を返しますdate_default_timezone_set("UTC")
<?PHP
$timestamp = time();
echo "<p>Timestamp: $timestamp</p>";
// This returns the correct time
echo "<p>". date("Y-m-d H:i:s", $timestamp) ."</p>";
echo "<p>Now I call 'date_default_timezone_set(\"UTC\")' and echo out the same timestamp.</p>";
echo "Set timezone = " . date_default_timezone_set("UTC");
// This returns a time 5 hours in the past
echo "<p>". date("Y-m-d H:i:s", $timestamp) ."</p>";
?>
サーバーのタイムゾーンはBSTです。したがって、'date' への 2 回目の呼び出しでは、最初の呼び出しより 1 時間遅れた時間が返されるはずです。実際には、最初の時刻から 5 時間遅れて返されます。
サーバーはもともと EDT タイムゾーン (UTC -4) でセットアップされていたことに注意してください。それはBST(UTC + 1)に変更され、サーバーが再起動されました.
これが PHP の問題なのか、サーバーの問題なのかわかりません。