TheRec
dimanche 20 avril 2008 à 20:40
Dans le cadre de PHP, lorsque tu utilises la fonction
date_default_timezone_set, tu changes le fuseau horaire pour l'exécution du script courant, donc lorsque tu utilisera les autres fonction permettant par exemple de retourner une date tu obtiendras la date avec le fuseau horaire souhaité.
Pour tester si la date (sous PHP) est changée tu peux regarder les résultats de ce petit script :
CODE
echo 'Heure du serveur, par défaut ('.date_default_timezone_get().') : '.date('r').'<br/>';
if(date_default_timezone_set('Europe/Paris')) {
echo 'Fuseau horaire changé pour '.date_default_timezone_get().'. Heure à ce fuseau : '.date('r').'<br/>';
} else {
echo 'Le fuseau horaire n\'a pas pu être changé.<br/>';
}
Ce n'est qu'une exemple, pour te montrer qu'au premier appel de date, le fuseau horaire est celui du serveur par défaut, le deuxième est celui modifié pour toute la durée d'exécution du script. Mais cela ne permet absolument pas de changer des date déjà enregistrées dans ta base de données.
Si ton fuseau horaire était faux lorsque tu as enregistré tes données dans la base de données, lorsque tu les liras elle seront fausses, tu devras faire la correction soit à l'affichage, soit directement dans la base de données (ce qui serait mieux, à toi de voir quels enregistrements doivent être changés). S'il s'agit d'une base de données MySQL et que tu as bien un champ DATETIME/TIMESTAMP, tu peux utiliser la fonction
CONVERT_TZ.