Bonjour, je suis confronté à un bug PHP bien énervant sur les dates.

Contexte :
Je dois reculer dans le temps afin de récupérer toutes les heures qui matchent une condition.

Pour celà j'utilise la fonction suivante dans une bouche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$timeStamp = strtotime('-1 hour',$timeStamp);
Seulement, je suis confronté à un bug PHP : lorsque l'on arrive sur une date correspondant au changement d'heure (ex : 28 mars 2010 à 3 heures du matin), la fonction strtotime perds pieds et renvoie toujours la même date !

Vous pouvez reproduire le bug à l'aide des 2 codes suivants (attention, boucles infinies) :

Code 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$timeStamp = time();
while (true) {
    echo date('Y-m-d H',$timeStamp)."\n";
    $timeStamp = strtotime('-1 hour',$timeStamp);
}
Code 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$dateTime = new DateTime(date('Ymd H:i',time()));
while (true) {
    echo $dateTime->format('Y-m-d H')."\n";
    $dateTime->modify('-1 hour');
}
J'utilise PHP 5.2 (testé sur 5.0.2 et 5.2.13).
Reproduisez-vous sur PHP 5.2 ?
Le bug est-il toujours présent sur PHP 5.3 ?

Merci d'avance pour votre aide.