Je travaille avec Zend 1.8. Je me suis fixé le fuseau horaire par défaut en Europe/Helsinki, et je suis analyse d'une chaîne qui ressemble à ceci:Pourquoi Zend_Date ne prend-il en compte que les fuseaux horaires lors de l'analyse?
2009-08-06
avec une déclaration comme celle-ci:
new Zend_Date($dateStr, 'YYYY-MM-dd');
Il produit une date comme celui-ci :
object(Zend_Date)#53 (8) {
["_locale:private"]=>
string(5) "en_US"
["_fractional:private"]=>
int(0)
["_precision:private"]=>
int(3)
["_unixTimestamp:private"]=>
string(10) "1249502400"
["_timezone:private"]=>
string(15) "Europe/Helsinki"
["_offset:private"]=>
int(-7200)
["_syncronised:private"]=>
int(0)
["_dst:protected"]=>
bool(true)
}
Ainsi, il connaît apparemment le fuseau horaire. Cependant, quand j'essaie d'obtenir une représentation sous forme de chaîne de la date, ce que je reçois n'est pas 2009-08-06, mais plutôt 2009-08-05 11:00:00 PM - l'heure UTC. Ce qui donne? Edit: J'ai ajouté une réponse, mais les notes de la falaise versio est, Zend_Date :: getDate() est cassé, pas l'analyse ou l'impression de bits.
Pas vraiment lié, mais important: Pour que vous sachiez, le formateur d'année 'YYYY' vous donne une année ISO, ce qui est un peu différent de ce que vous attendez. Ce n'est pas la cause de votre problème, mais un problème très commun avec Zend_Date.Vous devriez probablement utiliser 'yyyy' – jason
Pouvez-vous s'il vous plaît poster la ligne de code que vous utilisez pour générer la sortie? – jason