Si j'ai trouvé un bug à vp2sql.
Celui ci se passe lors du passage de l'heure d'hiver vers l'heure d'été le dernier dimanche de mars.
Regardez cette page
https://www.monsite-meteo.eu/Page/Test% ... 0heure.php
En voici le code
Code : Tout sélectionner
<?php
// appel du script de connexion
require("../Scripts/mysqli_connect.php");
date_default_timezone_set('Europe/Paris');
//date_default_timezone_set('UTC');
echo("---------- Heure d'hiver vers Heure d'été ----------<br>");
$sql="SELECT tstamp, recdateUTC, recdateTZ FROM data WHERE recdateUTC>=201803250000 AND recdateUTC<=201803250300";
$query = mysqli_query($conn,$sql);
$list=mysqli_fetch_array($query);
$i=0;
while ($list = mysqli_fetch_assoc($query)) {
$tstamp[$i]=$list['tstamp'];
$DateUTC[$i]=$list['recdateUTC'];
$DateTZ_BD[$i]=$list['recdateTZ'];
$DecalageHoraire[$i]=date("I",$list['tstamp']);
$DHRecalcule[$i]=date('d m Y H:i',$tstamp[$i]);
echo("TsTamp: ".$tstamp[$i]." - Date UTC : ".$DateUTC[$i]." - Date TZ BDD : ".$DateTZ_BD[$i]." - Décalage : ".$DecalageHoraire[$i]." - Date Heure recalculée : ".$DHRecalcule[$i]."<br>");
$i++;
};
mysqli_free_result($query);
echo("<br>---------- Heure d'été vers Heure d'hiver ----------<br><br>");
$sql="SELECT tstamp, recdateUTC, recdateTZ FROM data WHERE recdateUTC>=201810272355 AND recdateUTC<=201810280300";
$query = mysqli_query($conn,$sql);
$list=mysqli_fetch_array($query);
$i=0;
while ($list = mysqli_fetch_assoc($query)) {
$tstamp[$i]=$list['tstamp'];
$DateUTC[$i]=$list['recdateUTC'];
$DateTZ_BD[$i]=$list['recdateTZ'];
$DecalageHoraire[$i]=date("I",$list['tstamp']);
$DHRecalcule[$i]=date('d m Y H:i',$tstamp[$i]);
echo("TsTamp: ".$tstamp[$i]." - Date UTC : ".$DateUTC[$i]." - Date TZ BDD : ".$DateTZ_BD[$i]." - Décalage : ".$DecalageHoraire[$i]." - Date Heure recalculée : ".$DHRecalcule[$i]."<br>");
$i++;
};
mysqli_free_result($query);
mysqli_close($conn);
?>
Il manque donc une série de 12 données y compris dans la suite du tstamp (pour ce qui me concerne car j'ai un intervalle d'enregistrement de 5 minutes)
Après 01h55 TZ on devrait passer à 03h00 TZ et il ne devrait pas y avoir d'interruption dans les dates UTC.
Par contre il n'y a pas de problème lors du passage de l'heure d'été vers l'heure d'hiver
Les décalages que l'on trouvent sur les graphiques Highcharts sont bien dû à une mauvaise programmation PHP.
je cherche un moyen en prenant comme valeur pour les xAxis le tstamp non modifié et que les labels de l'axe et ceux du tooltip soit en heure locale.
Je suis en train de cogiter avec la fonction formatter: function du paramètre label de l'xAxis
Je pense qu'il faut se servir du tstamp comme valeur pour l'xAxis car il ne peut pas y avoir de doublon sur cet axe. Hors en recalculant ce tstamp en PHP comme on le fait, on créé des doublons lors du passage à l'heure d’hiver. Highchart shunte tout simplement la 1ère série de données lors de l'affichage.
A+
Pascal