2016-09-13 6 views
0

この短いコードの出力がいつも同じ平日でないのは本当に不思議ですね。PHPの日付 - 86400 * 7平日 - 月曜日はいつも月曜日ではありませんか?

どのように月曜日から日曜日にそれがフリップする日に来るのですか?私がstrtotime('+1 week', $t);を使用すると、期待どおりに動作します。

説明ありがとうございます!

<?php 

      $t = strtotime('2016-09-19'); 
      for ($i = 0; $i < 12; $i++) { 
       echo date('w', $t)."\n"; 
       $t += 86400 * 7;  
      } 

?> 
+0

それは私のためにうまく動作します:https://eval.in/641298 –

+0

okだから明らかに問題は夏時間です。 PHP 5.1以前は、出力は「正しい」(同日)でした。 – acidofil

答えて

2

時間を追加しているため、夏時間のタイムゾーンを使用しているためです。 11月6日にヒットすると、DSTが設定され、その日に前日が表示されます。タイムゾーンをUTCに設定するか、時間の代わりに+1 dayを使用します。

関連する問題