Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Bug jDateTime::toString

Posted by Mike on 10/06/2008 17:44

Bonjour à tous. J'ai une erreur lors de l'utilisation de cette classe, alors avant de faire un ticket je voulais voir si ça venait de moi. Dans un template je liste des articles qui ont des dates et je fais un

 
 {$article->date|jdatetime:'db_date','lang_date'}

Certaines dates affichent "30/11/1999" et ça me paraissait anormal. Alors je regarde dans ma base de données et j'ai des dates qui sont à '0000-00-00'. Alors d'un coté ma base ne devrait pas avoir ces erreurs mais d'un autre coté pourquoi jdatetime me renvoi le "30/11/1999" ? C'est assez confusant.. autant renvoyer "00/00/0000".

Alors j'ai rajouté le jeu de test suivant dans utils.jdatetime.html_cli.php

  function testWithZeros(){
    $dt = new jDateTime();
    $dt->setFromString("0000-00-00", jDateTime::DB_DFORMAT);
    $this->assertEqual(new jDateTime(0000, 00, 00, 0, 0, 0), $dt);
    
    $dt = new jDateTime(0000, 00, 00, 0, 0, 0);
    $this->assertEqual($dt->toString(jDateTime::DB_DFORMAT), "0000-00-00");
    $this->assertEqual($dt->toString(jDateTime::LANG_DFORMAT), "00/00/0000");
    $this->assertEqual($dt->toString(jDateTime::LANG_DTFORMAT), "00/00/0000 00:00:00");
    $this->assertEqual($dt->toString(jDateTime::LANG_TFORMAT), "00:00:00");
 }

Les tests utilisant les constantes LANG_D* ne fonctionnent pas et les autres fonctionnent.

J'utilise jelix 1.04 sur ce serveur.

Merci pour votre aide.

  [Opened] Re: Bug jDateTime::toString

Reply #1 Posted by laurentj on 10/23/2008 10:05

Bonjour,

et pourquoi ça devrait être 00/00/0000 ? c'est pas une date ça...

  [Opened] Re: Bug jDateTime::toString

Reply #2 Posted by laurentj on 10/23/2008 21:04

Ce sont les fonctions de php qui font ça, on n'y peut pas grand chose...

  [Opened] Re: Bug jDateTime::toString

Reply #3 Posted by Julien on 10/24/2008 11:19

Peut-être que si la date est invalide, la méthode toString() devrait retourner une chaine vide ?

Ou alors on laisse le développeur décider et faire les tests qui vont bien. C'est d'ailleurs plus sur pour les traitements de dates autres que l'affichage. jDateTime devrait alors générer des erreurs/exceptions si on lui donne une date invalide.

Et puis de toute façon, une date à NULL serait sans doute plus pertinente qu'une date à 0000-00-00 dans la base.


Julien

 
Page
  1. Re: Bug jDateTime::toString