Desde el gestor de incidencias ZF parece que este es un problema conocido:
Recientemente, una gran cantidad de usuarios de ZF está presentando un error que devuelve el año Zend_Date equivocada de 2009 en lugar de 2008. Esto es, sin embargo el comportamiento esperado, y ¡NO ES UN ERROR!
Desde el FAQ:
Al utilizar formatos propios en su código que podría llegar a una situación en la que se obtiene, por ejemplo, 29.12.2009, pero que esperaba obtener 29.12.2008.
Hay una diferencia de un año: 2009 en lugar de 2008. Debe usar la constante de año de caja inferior. Vea este ejemplo:
$ date-> toString ('dd.MM.aaaa');
en lugar de
$ fecha-> toString ('dd.MM.yyyy');
Desde el manual
Tenga en cuenta que el formato ISO predeterminado difiere de formato de PHP que puede ser irritante si no se ha utilizado en anteriores. Especialmente los especificadores de formato para Año y Minuto a menudo no se usan de la manera prevista.
Para el año hay dos especificadores disponibles que a menudo se confunden. El especificador Y para el año ISO y el especificador y para el año real. La diferencia es pequeña pero significativa. Y calcula el año ISO, que a menudo se usa para formatos de calendario. Véase, por ejemplo, el 31. de diciembre de 2007. El año real es 2007, pero es el primer día de la primera semana de la semana 1 del año 2008. Por lo tanto, si está utilizando 'dd.MM.aaaa' obtendrá '31. Diciembre.2007 'pero si usa' dd.MM.YYYY 'obtendrá '31. Diciembre.2008'. Como ve, esto no es un error, sino un comportamiento esperado según los especificadores utilizados.
Por minuto la diferencia no es tan grande. ISO usa el especificador m por minuto, a diferencia de PHP que usa i. Entonces, si no obtiene ningún minuto en su formato, compruebe si ha utilizado el especificador correcto.
Gracias, estúpido de mí que no busqué más. –
¡Ojalá hubiera visto esto hace 4 horas! – ashurexm
Esto debería marcarse como la respuesta – Sonny