Compte à rebours pour heure été/hiver

Signaler
Messages postés
1
Date d'inscription
mercredi 18 février 2015
Statut
Membre
Dernière intervention
18 février 2015
-
Bonjour,

J'ai installé sur mon site un compte à rebours pour le futur changement d'heure d'hiver à été
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]">
<html xmlns="[http://www.w3.org/1999/xhtml]">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<body>
<label id="compte_a_rebours"><noscript>Passage à l'heure d'été 2015.</noscript></label>

  <script type="text/javascript">
function compte_a_rebours()
{
 var compte_a_rebours = document.getElementById("compte_a_rebours");

 var date_actuelle = new Date();
 var date_evenement = new Date("Mar 28 03:03:00 2015");
 var total_secondes = (date_evenement - date_actuelle) / 1000;

 var prefixe = "<img src='../../images/image/flocon.png'><br />Passage à l'heure<br /> d'été dans:<br /> ";
 if (total_secondes < 0)
 {
  prefixe = "<img src='../../images/image/soleil.gif''><br />Nous sommes en heure<br /> d'été depuis:<br /> "; // On modifie le préfixe si la différence est négatif

  total_secondes = Math.abs(total_secondes); // On ne garde que la valeur absolue

 }

 if (total_secondes > 0)
 {
  var jours = Math.floor(total_secondes / (60 * 60 * 24));
  var heures = Math.floor((total_secondes - (jours * 60 * 60 * 24)) / (60 * 60));
  minutes = Math.floor((total_secondes - ((jours * 60 * 60 * 24 + heures * 60 * 60))) / 60);
  secondes = Math.floor(total_secondes - ((jours * 60 * 60 * 24 + heures * 60 * 60 + minutes * 60)));

  var et = "et";
  var mot_jour = "j,";
  var mot_heure = "h,";
  var mot_minute = "mn";
  var mot_seconde = "s";

  if (jours == 0)
  {
   jours = '';
   mot_jour = '';
   
  }
  else if (jours == 1)
  {
   mot_jour = "j,";
  }
  
  if (heures == 0)
  {
   heures = '';
   mot_heure = '';
  }
  else if (heures == 1)
  {
   mot_heure = "h,";
  }

  if (minutes == 0)
  {
   minutes = '';
   mot_minute = '';
  }
  else if (minutes == 1)
  {
   mot_minute = "mn";
  }

  if (secondes == 0)
  {
   secondes = '';
   mot_seconde = '';
   et = '';
  }
  else if (secondes == 1)
  {
   mot_seconde = "s";
  }

  if (minutes == 0 && heures == 0 && jours == 0)
  {
   et = "";
  }

  compte_a_rebours.innerHTML = prefixe + jours + ' ' + mot_jour + ' ' + heures + ' ' + mot_heure + ' ' + minutes + ' ' + mot_minute + ' ' + et + ' ' + secondes + ' ' + mot_seconde;
 }
 else
 {
  compte_a_rebours.innerHTML = 'Compte à rebours terminé.';
 }

 var actualisation = setTimeout("compte_a_rebours();", 1000);
}
compte_a_rebours();
</script>
</body>
</html>


Ma question est:

Comment faire pour retourner le décalage, exemple, à 3h, on recule d'une heure, il sera deux heures, le problème actuellement est qu'une fois qu'il est 3 heures, il va décompter en disant que nous sommes au passage de l'heure d'été depuis xTemps mais le décalage n'est pas fait, toujours un trou d'1 heure soit au passage d'été comme hiver.

Je pense qu'il faudrait ajouter une ligne pour plus ou moins selon la saison, je n'y connait rien en javascript même si des fois en patouillant j'arrive à quelque chose. Que faire comme code?

Merci pour votre aide.
Pour l'instant le script est installé sur ma page d'accueil en haut à gauche.
http://inforail.fr

Fabrice