Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pour information :
Un petit message pour vous signaler qu'il y a un bug persistant dans le module Zend_Date.
Si on tente de mettre la date du 29 décembre 2008 dans un objet Zend_Date. Il garde la date du 29 décembre 2009 à la place.
J'ai vu que le problème existait aussi avec d'autres dates comme le 31 décembre 2007, ...
Le plus ennuyeux pour moi c'est que j'ai une application d'agenda en production depuis 3 semaines et toute la gestion des dates est basée sur Zend_Date.
J'ai ouvert une issue sur la plateforme JIRA du Zend Framework : http://framework.zend.com/issues/browse/ZF-3982
Avez-vous déjà rencontré le problème de votre côté ?
Hors ligne
Wow, testé ton bout de code :
$dayDate = Zend_Date::now(); $dayDate->setYear(2008); $dayDate->setMonth(12); $dayDate->setDay(29); Zend_Debug::dump($dayDate->toString('dd/MM/YYYY'));
et ça m'affiche :
string(10) "29/12/2009"
Jolie trouvaille ;-) GMT+365*24 ?
qui a le temps de farfouiller le code ?
Dernière modification par fte (18-08-2008 16:51:19)
Hors ligne
Le problème semble lié à la fonction toString().
Si on appelle toArray() ou get(Zend_Date::YEAR) les valeurs sont justes.
Hors ligne
Hello,
Ce n'est pas un bug.
C'est yyyy et pas YYYY. C'est dans la doc.
Ça permet de gérer les semaines car dans ton cas il s'agit de la semaine 1 de 2009.
A+
Hors ligne
En effet, je viens de voir ceci dans la doc :
Note
Note that the default ISO format differs from PHP's format which can be irritating if you have not used in previous. Especially the format specifiers for Year and Minute are often not used in the intended way.
For year there are two specifiers available which are often mistaken. The Y specifier for the ISO year and the y specifier for the real year. The difference is small but significant. Y calculates the ISO year, which is often used for calendar formats. See for example the 31. December 2007. The real year is 2007, but it is the first day of the first week in the week 1 of the year 2008. So, if you are using 'dd.MM.yyyy' you will get '31.December.2007' but if you use 'dd.MM.YYYY' you will get '31.December.2008'. As you see this is no bug but a expected behaviour depending on the used specifiers.
For minute the difference is not so big. ISO uses the specifier m for the minute, unlike PHP which uses i. So if you are getting no minute in your format check if you have used the right specifier.
Hors ligne
C'est bon à savoir et en plus il y a un paragraphe dans la doc qui en parle :
http://framework.zend.com/manual/fr/zen … tants.html
Hors ligne