Forum de discussion
Forum « Programmation Javascript » (archives)
Re: affichages d'heures différentes selon le fuseau ou comment aditionner des heures à une date avec twAjouteHeures
Envoyé: 6 septembre 2004, 10h01 par Oznog
Pour ajouter du "temps" à une date il suffit d'additionnet des millisecondes en passant par la méthode setTime. Pour l'adition, vaut mieux récupérer des millisecondes avec getTime. Voilà un prototype (extension de méthode de l'objet Date).
Date.prototype.twAjouteHeures = twAjouteHeures
function twAjouteHeures(nHeureAjoutee) {
return new Date(this.setTime(this.getTime() + nHeureAjoutee*3600000))
}
var d = new Date("Mon Sep 6 09:45:20 EDT 2004");
// Ajoute 5 heures
document.write(d+' - '+d.twAjouteHeures(5);
3600000 est le nombre de millisecondes dans une heure.
Mais, c'est loing d'être aussi simple, la formule est simple mais le 5 dificile à trouver, il y a les heures d'été/hiver, selon les fuseaux, pays, parfois l'ajustement est une demi haure, parfois 4 heures sans parlé des date de changement complètement anachique au niveau mondiale. Des page d'exception, un enfert à gérer qui change même à chaque année (réforme locale etc.)
Mais tu peux faire un petit jeu de tests sur l'europe, et l'aémrique pour résoudre beaucoup de cas.
Tu trouvera un exemple simple ici (http://www.merlyn.demon.co.uk/js-date5.htm#UKnow).
Et j'ai fais un code pas mal complet qui doit bien trainer quelque part dans ce forum.
Ciao
Oznog