Dal issue tracker ZF sembra che questo è un problema noto:
Recentemente un sacco di utenti ZF sono la presentazione di un bug che Zend_Date restituisce l'anno sbagliato 2009 invece di 2008. Questo è comunque un comportamento previsto, e NON UN BUG!
Dalla FAQ:
Quando si utilizza propri formati nel codice che si potrebbe arrivare ad una situazione in cui si ottiene per esempio 29.12.2009, ma si prevede di ottenere 29.12.2008.
C'è una differenza di un anno: il 2009 invece del 2008. È necessario utilizzare la costante dell'anno inferiore. Vedere questo esempio:
$ date-> toString ('dd.MM.yyyy');
invece di
$ data-> toString ('DD.MM.YYYY');
Dal manuale
Si noti che il formato ISO di default è diverso dal formato di PHP che può essere irritante se non è stato utilizzato in precedenti. Soprattutto gli specificatori di formato per Anno e Minuto spesso non vengono utilizzati nel modo previsto.
Per anno ci sono due specificatori disponibili che sono spesso errati. L'identificatore Y per l'anno ISO e lo specificatore y per l'anno reale. La differenza è piccola ma significativa. Y calcola l'anno ISO, che viene spesso utilizzato per i formati del calendario. Vedi ad esempio il 31. Dicembre 2007. L'anno reale è il 2007, ma è il primo giorno della prima settimana della settimana 1 dell'anno 2008. Quindi, se stai usando 'gg.mm.aaaa', otterrai '31 .Dicembre.2007 ', ma se si utilizza' gg.AAAAA ', si ottiene '31 .Dicembre.2008'. Come vedi questo non è un bug ma un comportamento atteso a seconda degli specificatori usati.
Per il minuto la differenza non è così grande. ISO usa l'identificatore m per il minuto, a differenza di PHP che usa i. Quindi se non ottieni nessun minuto nel tuo formato controlla se hai usato lo specificatore giusto.
Grazie, stupido da parte mia che non ho guardato oltre. –
Vorrei che avrei visto questo 4 ore fa! – ashurexm
Questo dovrebbe essere contrassegnato come la risposta – Sonny