Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir les amis, je viens de relever un comportement étrange de Zend_Date qui, certes, a été provoqué par un développement pas très académique de ma part, mais qui m'étonne.
Sur mon site, j'ai une petite comparaison de dates afin de savoir laquelle est la plus proche dans le temps (celle du dernier match, ou celle du prochain match).
Pour faire un timestamp de la date, je procède comme ceci :
$date = new Zend_Date($nextMatch->date, false, 'fr'); $prochain_tmstmp = $date->getTimestamp();
La puissance de Zend_Date me permettait de créer l'objet date avec une valeur déjà francisée, du style : 'Aujourd'hui 21h00' par exemple. C'est ce qui n'est pas très académique, mais comme ça passait, je n'ai pas cherché à modifié (bouhhhh).
Seulement, le match de ce dimanche est à 14h45. "04/01/2009 14h45", "Demain 14h45" ... pas de problème, Zend_Date comprends à chaque fois. Mais "Aujourd'hui 14h45", impossible de comprendre ! Alors qu'en modifiant l'heure de façon à générer "Aujourd'hui 14h00", pas de soucis.
Pour résoudre ceci, j'ai simplement créé $date avant de franciser la date, mais j'avoue que ça me turlupine comme comportement.
Quelqu'un a une idée ?
Pour info, voici le message d'erreur craché par ZF :
Fatal error: Uncaught exception 'Zend_Date_Exception' with message 'unable to parse date 'Aujourd'hui - 14h45' using 'd MMM yyyy HH:mm:ss' (M <> d)' in D:\xampp\htdocs\www.planete-asm.com\app\data\library\ZendFramework\library\Zend\Date.php:2576 Stack trace: #0 D:\xampp\htdocs\www.planete-asm.com\app\data\library\ZendFramework\library\Zend\Date.php(1181): Zend_Date->_calculate('set', 'Aujourd'hui - 1...', false, 'fr') #1 D:\xampp\htdocs\www.planete-asm.com\app\data\library\ZendFramework\library\Zend\Date.php(212): Zend_Date->set('Aujourd'hui - 1...', false, 'fr') #2 D:\xampp\htdocs\www.planete-asm.com\app\data\application\modules\SiteMasterController.php(60): Zend_Date->__construct('Aujourd'hui - 1...', false, 'fr') #3 D:\xampp\htdocs\www.planete-asm.com\app\data\application\modules\site\controllers\IndexController.php(7): SiteMasterController->init() #4 D:\xampp\htdocs\www.planete-asm.com\app\data\library\ZendFramework\library\Zend\Controller\Action.php(123): IndexController->init() #5 D:\xampp\htdocs\www.planete-asm.com in D:\xampp\htdocs\www.planete-asm.com\app\data\library\ZendFramework\library\Zend\Date.php on line 2576
Hors ligne