從ZF問題跟蹤,似乎這是一個已知的問題:
最近很多ZF用戶都提交了Zend_Date返回錯誤的一年,2009年,而不是2008年。但是,這是預期的行爲的錯誤,並不是一個錯誤!
從常見問題:
使用時在代碼中自己的格式,你可以來找你在哪裏得到,例如2009年12月29日的情況,但你有望獲得2008年12月29日。
有一年差異:2009年而不是2008年。你應該使用較低的年份常數。看到這個例子:
$ date-> toString('dd.MM.yyyy');
代替
$日期 - >的toString( 'DD.MM.YYYY');
從手動
注意,默認ISO格式從PHP的格式,可如果你還沒有在以前的使用會刺激不同。特別是Year和Minute的格式說明符通常不會以預期的方式使用。
一年有兩個說明符常常被誤認爲可用。 ISO年份的Y說明符和實際年份的y說明符。差別很小但很重要。 Y計算ISO年份,通常用於日曆格式。例如2007年12月31日。實際年份是2007年,但是它是2008年第一週第一週的第一天。所以,如果你使用'dd.MM.yyyy',你會得到'31.December.2007',但如果你使用'dd.MM.YYYY',你會得到'31。12月。2008'。正如你所看到的,這不是一個錯誤,而是一個預期的行爲,取決於使用的說明符。
一分鐘的差異並不大。與使用i的PHP不同,ISO使用說明符m來表示分鐘。所以如果你的格式沒有得到,請檢查你是否使用了正確的說明符。
謝謝,愚蠢的我,我沒有再看。 – 2010-08-05 10:55:14
我希望我會在4個小時前看到這個! – ashurexm 2010-12-30 03:54:27
這應該被標記爲答案 – Sonny 2011-08-24 20:18:25