1
我想用PHP計算Ash Wednesday的日期,但我遇到了一個不尋常的問題。PHP:從easter_date()中減去天數來計算Ash週三
灰色星期三在復活節前慶祝46天。
還有一天秒。
46 * 86400 = 3974400
因此,灰星期三是3974400秒復活節之前。
easter_date()
是一個內置的PHP函數,它返回當年復活節的午夜的Unix時間戳。
date('F d, Y', easter_date())
回報March 27, 2016
,這是正確的。
現在...這是事情變得粘滯和噁心的地方。
其結果是,人們會認爲date('F d, Y', easter_date() - 3974400)
回報February 10, 2016
,對不對?
錯誤。
實際結果是February 09, 2016
,這是灰燼星期三的前一天。
難道這是因爲2016年是閏年?這是easter_date()的某種已知問題嗎?或者我只是做錯了什麼?
編輯:我使用的PHP版本5.5.9-1ubuntu4.16備案。
它看起來像它的PHP版本問題。它與我的系統很好地工作。所以不要使用'easter_date()'和更好地使用'strtotime()' – RJParikh
Works罰款:http://sandbox.onlinephpfunctions.com/code/90872fd92fa4b23ca3a2559bc8b136d2b5b85b5e – Justinas
它更可能是一個夏令時調整...什麼日期時鐘在您的(服務器)時區變化爲DST?因爲減去'3974400'秒對一天中的小時數做出了一些非常明確的假設,假設在涉及夏令時的情況下每年兩次都會中斷 –