こんにちは、php の date() 関数で奇妙な動作が発生しています。私はそのように1週間ずつ日付を増やしようとしています。
コード:
<?php
date_default_timezone_set('Europe/London');
echo 7*24*60*60;
echo '<br>';
echo date('d/m/Y H:i:s', 0);
echo '<br>';
echo date('d/m/Y H:i:s', 604800);
?>
次の出力が得られます。
出力:
604800
01/01/1970 01:00:00
08/01/1970 01:00:00
これは予想どおりで、日付が 7 日ずつ 1 秒ずつ増えています。しかし、特定の秒数に達すると、日付機能が日付から 1 時間ずれているように見えます。
コード:
<?php
date_default_timezone_set('Europe/London');
echo (1351468800 - 1350864000);
echo '<br>';
echo date('d/m/Y H:i:s', 1350864000);
echo '<br>';
echo date('d/m/Y H:i:s', 1351468800);
?>
次の出力が得られます
出力:
604800
22/10/2012 01:00:00
29/10/2012 00:00:00
ご覧のとおり、2 つの日付の差は 604800 秒ですが、日付は 1 時間を失っています。これを 2 つの異なるサーバーでテストし、DateTime オブジェクトを使用して同様のコードをテストしましたが、結果は同じでした。どこが間違っていますか?