PHPで灰水曜日の日付を計算しようとしていますが、珍しい問題が発生しています。PHP:灰の数を計算するためにeaster_date()から日数を引く
アッシュ水曜日は、復活祭の前に46日です。
1日に秒があります。
46 * 86400 = 3974400
したがって、灰の水曜日は、3974400秒イースターの前にあります。
easter_date()
は、現在の年の復活祭の真夜中のUnixタイムスタンプを返す組み込みのPHP関数です。 正しいある
date('F d, Y', easter_date())
戻りMarch 27, 2016
、。
今、これは物事が少し粘りと痒くなる場所です。その結果、
、1は右、そのdate('F d, Y', easter_date() - 3974400)
戻りFebruary 10, 2016
を想定でしょうか?
間違っています。
実際の結果は、灰の水曜日の前に1日ですFebruary 09, 2016
、です。
これは、2016年がうるう年なのでしょうか?これはeaster_date()の既知の問題ですか?それとも、何か間違っているだけですか?
編集:私はPHPバージョン5.5.9-1ubuntu4.16を使用しています。こんにちはこのコードを試してみてください
ITSはそのPHPのバージョンの問題のように思えます。私のシステムとうまく動作します。だから 'easter_date()'を使い、 'strtotime()'を使う方が良い – RJParikh
うまく動作する:http://sandbox.onlinephpfunctions.com/code/90872fd92fa4b23ca3a2559bc8b136d2b5b85b5e – Justinas
これは夏時間調整の可能性が高い。あなたの(サーバー)タイムゾーンでDSTのクロックが変わるのですか? '3974400'秒を減算すると、1日の時間数について非常に明示的な前提が設定されているため、夏時間が含まれる年に2回壊れるという仮定があります。 –