DateTime et valeur "vide"
Bonjour,
Je suis entrain de me coder un système de traitement automatique de formulaires. Dans ces formulaires, j'ai des champs qui doivent être traités comme des dates.
L'idée, c'est que quand je lis les variables de mon formulaire (je connais le type qu'elles doivent avoir), quand je tombe sur une variable de type date, je veux instancier un ODateTime (une classe perso qui étend DateTime). En cas de foirage (genre un utilisateur qui écrit n'importe quoi), la classe DateTime lève une exception.
Jusque là, tout vas bien, mais pour un tas de raison pratique, j'aurai besoin d'un DateTime quand même. Du coup, naïvement, j'ai tenté de catcher pour lui donner la valeur 0000-00-00 (le "0" mysql).
Mais là, ô surprise quand je l'affiche, j'obtiens : "-0001-11-30 00:00:00", ce qui est confirmé par la doc (voir les commentaires).
Bref, est-ce que quelqu'un aurait une solution pour avoir un DateTime qui vaut "0000-00-00" ? Ou un équivalent ?
Ps : voici ma classe ODateTime :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
class ODateTime extends DateTime {
public function ODateTime($init='now') {
try {
DateTime::__construct($init);
} catch (Exception $e) {
DateTime::__construct('0000-00-00');
}
}
public function __toString() {
return ($this->format('Y-m-d H:i:s'));
}
} |