Page 1 sur 1

Comportement étonnant de Checkdate

Posté : 03 août 2011, 11:41
par Castor Gaspard
Bonjour,

Si j'utilise

Code : Tout sélectionner

var_dump(checkdate(08, 03, 2011)); var_dump(checkdate(8, 3, 2011)); var_dump(checkdate(01, 01, 2011)); var_dump(checkdate(1, 1, 2011)); var_dump(checkdate(2, 29, 2008));
s'affiche...
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
Pourquoi Php n'aime pas la date du jour avec les zéros selon vous ? :mrgreen:

J'utilise la version 5.25 de Php.

Merci pour votre aide.

Cordialment,

Gasaprd

Re: Comportement étonnant de Checkdate

Posté : 04 août 2011, 22:37
par Ryle
J'aurais tendance à dire que c'est parce que quand un nombre est préfixé par un 0, la plupart des langages les considèrent comme des nombres exprimés en base 8 (octale)

Et un 08 en octale (où les nombres vont de 0 à 7) ... ben c'est comme un 2 en binaire, ça doit pas lui plaire :)

Re: Comportement étonnant de Checkdate

Posté : 04 août 2011, 23:58
par Castor Gaspard
Bonjour,

Je te remercie de ta réponse, Ryle. :)

Depuis, je me suis tourné vers le package "Date" de Pear, qui semble plus fiable, à défaut de pouvoir mettre à jour ma version de Php.

J'ai galéré, car je n'ai pas l'habitude de coder en mode "objet", mais j'ai pu avancer à petit pas. :mrgreen:

Cordialement,

Gaspard

Re: Comportement étonnant de Checkdate

Posté : 20 mars 2012, 19:50
par Benpic
Je suis un peu en retard pour une réponse, mais pour éviter que checkdate() renvoie FALSE alors que les jours et mois sont précédés de 0, mets les arguments entre ' '

ex:


var_dump(checkdate('02', '29', '2012'));

var_dump(checkdate('08', '09', '2012'));

var_dump(checkdate('02', '01', '2012'));

Bonne chance