Trucsweb.com

Forum de discussion

 Forum « Programmation Javascript » (archives)

Re: indiquer une heure différente

Envoyé: 13 septembre 2003, 9h53 par Oznog


Salut,

Ouf, tu ne sais pas dans quoi tu t'embarque...

Il est effectivement possible de récupérer l'heure UTC ou le temps universel basé à "Greenwich". Et eune bonne chose car l'usager affiche l'heure de sa localité et donc pas d'un lieu en particulier.

Malheureusement le Javascript se contente de retourner l'heure normale! C'est dire qu,on ne sait pas si c'est l'heure normale ou l'heure avancée (d'été).

Ça semble bien simple comme ça, ajouter une heure selon la date mais si tu regarde ça de prêt te va t'appercevoir que c'est loing d'être normalisé. À côté de ça, le 28 février et les années bixextilles est un jeu d'enfant!!!

Alors j'ai personnellement fait beaucoup de travail de ce côté, pour ce qui est de l'amérique et de l'europe c'est passablement simple. Le dernier dimanche de mars pour l'europe et le premier dimanche d'avril pour l'amérique. Et ce pour la plupart des états même s'il y a bien sûr des exception, même des exception par état américain! Même chose mais à l'inverse pour remettre l'heure normale en Automne.

Mais si tu veux appliquer ça pour la planête en entier tu va avoir 36 milles exceptions, Il y a même des pays qui avance d'une demi heure!!! Ou encore le changement ne se fait pas toujours à 1h00 de la nuit, parfois c'est 2h00 ET PIRE, parfois on change l'heure à 1h00 local d'autre fois à 1h00 de "Greenwich". ET C'EST l'A LE RÔLE DE L'HEURE UTC sinon pourqoui en avoir besoin si les usagers sont local.

Juste pour te donner une idée, mon tableau (array) qui contient toutes ces exception à 394 entrés! Et ce n'est que les principales! Le script pour seulement retourner l'heure UTC réel en tenant compte de ces exception fait 600 lignes de code! Je devrais le mettre enm ligne une jour.

En d'autre mots, c'est pratiquement plus simple de trouver le pays de l'usager et d'ainsi ajouter ou soustraire un nombre d'heure pour retrouver l'heure UTC manuellement! Mais ça aussi c'est une autre histoire. On est jamais sûr à 100% du pays de l'usager.

En attendant, je te conseil d'utiliser ce petit script que je vient de faire, il calcule l'heure selon l'UTC sans prendre en compte l'heure d'été. Tu pourais y ajouter facilement un simple ajustement basé sur une date fixe, fin Mars par exemple, l'heure ne sera pas bonne que quelques heures par année. OU ENCORE ajuster manuellement une variable deux fois par année, à 1 ou à 0 selon la saison.

Voilà le petit code...

<html>
<head>
<title>Trucsweb - Heure UTC</title>
<script type="text/javascript" language="javascript">
function twAfficheHeure() {
// Affiche 3 dates selon l'heure Universel (UTC)
// Greenwich, Paris et +3
// Script gratuit des TRUCSWEB.COM
// Ne supporte pas les heures d'été
var maDate = new Date();
var maDate1 = new Date(maDate.getYear(), maDate.getUTCMonth(), maDate.getUTCDate(), maDate.getUTCHours()+0, maDate.getUTCMinutes(), maDate.getUTCSeconds());
var maDate2 = new Date(maDate.getYear(), maDate.getUTCMonth(), maDate.getUTCDate(), maDate.getUTCHours()+1, maDate.getUTCMinutes(), maDate.getUTCSeconds());
var maDate3 = new Date(maDate.getYear(), maDate.getUTCMonth(), maDate.getUTCDate(), maDate.getUTCHours()+3, maDate.getUTCMinutes(), maDate.getUTCSeconds());
document.getElementById("date1").innerHTML = twHeure(maDate1);
document.getElementById("date2").innerHTML = twHeure(maDate2);
document.getElementById("date3").innerHTML = twHeure(maDate3);
delais = setTimeout("twAfficheHeure()",1000);
}

function twHeure(_date) {
// Retourne l'heure formaté d'une date
// Script gratuit des TRUCSWEB.COM
var sH = _date.getHours();
sH = sH < 10 ? '0' + sH : sH;
var sM = _date.getMinutes();
sM = sM < 10 ? '0' + sM : sM;
var sS = _date.getSeconds();
sS = sS < 10 ? '0' + sS : sS;
return sH + ':' + sM + ':' + sS;
}
// -->
</script>
<style>
.heure {
font-family: Arial, Helvetica, sans-serif;
font-size:9.5pt;
color: #333;
background-color:#ccc;
border: 1px solid blue;
padding: 1em; text-align: center;
}
</style>
</head>

<body onload="twAfficheHeure()">
<h3>Heure (Temps Universel, UTC)</h3>
<h4>Heure davancée d'été non-supporté</h4>
<table><tr><th>Greenwich</th><th>France</th><th>+3</th></tr><tr>
<td><div id="date1" class="heure"></div></td>
<td><div id="date2" class="heure"></div></td>
<td><div id="date3" class="heure"></div></td>
</tr></table>

</body>
</html>

Ciao
Oznog


Réponses

 Aucune réponse à ce message... 
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@