Bonjour,
Une Piste??
la date/heure affichée par le navigateur web est la dat/heure locale ex: "Europe/Paris"
Si la date de ton serveur est "UTC" tu as 2h de décalage en été...
donc quant tu cherche le 1er samedi à 0 heure sur ton terminal (Europe/Paris) le serveur le trouve le 7 à 22 heures (UTC) te renvoie l'information... que ton navigateur affiche en "Europe/paris" ou c'est déjà le 8 à 0 heure !!!
J'ai eu beaucoup de difficulté à comprendre ce soucis que je rencontrais et mon explication ci-dessus n'es pas forcément claire !
pour en avoir le cœur net j'ai écrit ce petit script php "timezone" qui va t'afficher ton heure "navigateur" et ton heure serveur :
<?php
//date_default_timezone_set('Europe/Paris');
//date_default_timezone_set('UTC');
$script_tz = date_default_timezone_get();
$ini=ini_get('date.timezone');
echo "Date du navigateur : </br>date_default_timezone_get =".$script_tz."<br>";
echo "Date du serveur :</br>ini_get('date.timezone') =".$ini."<br><br>";
if (strcmp($script_tz, ini_get('date.timezone'))){
echo 'PB ! Le décalage horaire du script diffère du décalage horaire défini dans le fichier ini.';
} else {
echo 'C'est OK :Le décalage horaire du script est équivalent à celui défini dans le fichier ini.'; } ?>
Tu créé un fichier php avec ce code que tu place sur la racine de ton site par exemple et que tu lance via la ligne de commande...
Si les 2 dates ont un décalage il faut le régler
- Soit en modifiant l'heure "serveur" en modifiant le fichier "php.ini" du serveur à "Europe/Paris" par exemple ou à "UTC"
Extrait php.ini sur serveur wamp :
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone ="Europe/Paris"
- Soit en modifiant la date par défaut de ton script (voir exemple dans les 2 premières lignes en commentaire du fichier php "timezone" ci-dessus...
C'est la solution que j'ai trouvé lorsque j'ai rencontré un problème équivalent...
J'espère que cela pourra t'aider!