Bonjour,
J'ai un petit souci.
Cela marche, mais le résultat ajoute 1 heure de plus que la date d'origine.Code:
1
2 $date = "12/03/2013-17:30"; $date_f = strftime('%Y-%m-%d %H:%M:%S',strtotime($date));
Merci.
Version imprimable
Bonjour,
J'ai un petit souci.
Cela marche, mais le résultat ajoute 1 heure de plus que la date d'origine.Code:
1
2 $date = "12/03/2013-17:30"; $date_f = strftime('%Y-%m-%d %H:%M:%S',strtotime($date));
Merci.
cherche du côté des timezone.
le code suivant corrige le problème:
mais un autre problème est apparu:Code:date_default_timezone_set('Europe/London');
Le code renvoie: 1970-01-01 01:00Code:
1
2 $date = "31/01/2013-20:23"; $date_f = strftime('%Y-%m-%d %H:%M',strtotime($date));
Pourquoi?
Finalement j'ai corriger mon problème de la manière suivante:
Code:preg_replace("/(\d\d)\/(\d\d)\/(\d\d\d\d)-([0-9]{2}):([0-9]{2})$/", "$3-$2-$1 $4:$5", $date)
Oui c'est que "strtotime" n'accepte pas n'importe quoi et là tu as un format très exotique.
En même temps si c'est pour avoir un format final sans lettres, tu n'as pas besoin d'utiliser "strftime", ni donc "strtotime".
Et date_create_from_format permet de transformer des formats bizarres plus facilement qu'avec un regex :
remarque que ça fourni aussi un format valide qui te permettrait d'utiliser "strtotime" et donc "strftime" si tu avais besoin de dates avec des lettres en français.Code:
1
2
3
4
5
6 $format = 'd/m/Y-H:i'; $date = '31/01/2013-20:23'; $date = date_create_from_format($format, $date); $date = date_format($date, 'Y-m-d H:i'); // 2013-01-31 20:23
Merci pour cette solution.