2

関数date()に依存するスクリプトの1つが無限ループに陥っていることに気づきました。この原因を調査しているときに、私は非常に単純な驚くべきテストを思いつきました。

<?php
echo (date("Y-m-d H:i:s",1330221136)."\n\n");
echo (date("Y-m-d H:i:s",1330222036)."\n");

最初のタイムスタンプは2番目のタイムスタンプよりも小さいため、最初の行はより早い日時を返すことになっています。ただし、上記のコードの出力は次のとおりです。

2012-02-25 23:52:16 

2012-02-25 23:07:16

PHP 5.3の関数date()の誤動作について知っている人はいますか?

4

2 に答える 2

6

これは、現地時間の正確に00:00に時計が1時間遅れた場合に、合法的に発生する可能性があります。それで:

  1. これが発生する可能性を考慮していないため、コードにバグがあります
  2. お住まいの地域のタイムゾーンでは、DSTは2012-02-26 00:00(現地時間)に終了したようです
  3. これは、あなたがブラジルにいることを私たちに知らせます(調べるためのFluffehへの小道具!)
于 2012-09-05T15:33:59.610 に答える
1

私のインストールへのコピー/貼り付けは、結果としてこれを与えます:

2012-02-26 02:52:16
2012-02-26 03:07:16

それは私には問題ないようです。

于 2012-09-05T15:35:34.047 に答える