Page 1 sur 1

Probleme de recreation de date

Posté : 23 mars 2012, 13:50
par ddattee
Bonjour,

Je me suis rendu compte sur mon serveur que la fonction DateTime::createDateFromFormat() avait un comportement tres bizarre et vraiment embêtant:
Lorsque j'appelle les lignes suivantes:

Code : Tout sélectionner

$date_end = new DateTime(); var_dump(date_default_timezone_get()); var_dump($date_end->format('Y-m-d')); var_dump(DateTime::createFromFormat('z', $date_end->format('z'))->format('Y-m-d'));
J'obtiens ceci :

Code : Tout sélectionner

string(12) "Europe/Paris" string(10) "2012-03-23" string(10) "2012-03-24"
J'avoue que c'est la premiere fois que ca m'arrive alors que j'ai déjà utilisé cette combinaison de fonction de date.
Une idée?

Merci

Re: Probleme de recreation de date

Posté : 23 mars 2012, 18:07
par stealth35
on dirait que le parse commence a 0

EDIT : non bien joué, il prends pas en compte l'année bissextile
$date = DateTime::createFromFormat('Y-m-d', '2012-02-28');
var_dump($date->format('z'));

$date = DateTime::createFromFormat('z', $date->format('z'));
var_dump($date->format('z'));

$date = DateTime::createFromFormat('Y-m-d', '2012-02-29');
var_dump($date->format('z'));

$date = DateTime::createFromFormat('z', $date->format('z'));
var_dump($date->format('z'));

$date = DateTime::createFromFormat('Y-m-d', '2012-03-01');
var_dump($date->format('z'));

$date = DateTime::createFromFormat('z', $date->format('z'));
var_dump($date->format('z'));

/*
string(2) "58"
string(2) "58"
string(2) "59"
string(2) "60"
string(2) "60"
string(2) "61"
*/
reporte le bug sur php.net,