2011-08-18 3 views
1

ayant une trouslb avec strtotime, il est plus facile de montrer par exemple :)PHP: Strtotime/date ignorant le fuseau horaire?

date_default_timezone_set('Europe/London');    // Set timezone to local/
echo date("d/m/Y", strtotime("1-6-2003")); // Expected: 01/06/2003 Got: 01/06/2003 
echo date("d/m/Y", strtotime("16-12-2003")); // Expected: 16/12/2003 Got: 16/12/2003 
echo date("d/m/Y", strtotime("10-12-03")); // Expected: 10/12/2003 Got: 03/12/2010 

Toute idée comment contourner ce problème? J'utilise strtotime pour essayer d'annuler les problèmes avec les utilisateurs qui entrent des dates dans différents formats.

Merci d'avoir lu,

Rik.

+0

Ce n'est pas un problème avec les fuseaux horaires, mais avec les formats de date. – deceze

Répondre

0

strtotime ne prend pas en charge ce type de format de date. Voir le documentation pour une liste des formats supportés. Lisez la documentation la prochaine fois.

+0

J'ai lu les docs, donc en utilisant - comme délimiteur au lieu de/pour éviter les formats de date US. J'ai contourné le problème en faisant un peu de vérification et de fudging de la chaîne et en insérant un 19 ou 20 manquant manuellement avant le traitement par strtotime :) – Rik