Comment puis-je obtenir l'heure locale de jQuery?

J'utilise jQuery et j'ai besoin d'avoir l'heure locale pour l'Allemagne.

Toute personne venant de mon site Web de n'importe quel pays devrait savoir à quelle heure il se trouve en Allemagne.

Si le temps est compris entre 0:00 et 12:00, je dois faire une alerte: "Bonjour".

Si le temps est compris entre 12h00 et 17h00, je dois faire une alerte: "Bon après-midi".

Comment puis-je implémenter cela dans jQuery?

Vous pouvez obtenir le décalage horaire local du client pour obtenir l'heure GMT, puis ajouter les heures de décalage du fuseau horaire d'Allemagne (Heure d'Europe centrale GMT + 1):

function getDate(offset){ var now = new Date(); var hour = 60*60*1000; var min = 60*1000; return new Date(now.getTime() + (now.getTimezoneOffset() * min) + (offset * hour)); } //... var dateCET = getDate(1); // Central European Time is GMT +1 if (dateCET.getHours() < 12) { alert ("Good morning."); } else { alert ("Good afternoon."); } 

Mise à jour: Je suis d'accord avec @Josh, le code ci-dessus dépend entièrement du client. Essayons de le faire mieux:

 $(document).ready(function(){ var timezone = "Europe/Berlin"; $.getJSON("http://json-time.appspot.com/time.json?tz="+timezone+"&callback=?", function(data){ if (data.hour < 12) { alert ("Good morning in "+timezone); } else { alert ("Good afternoon in "+timezone); } }) }); 

Nous profitons maintenant de JSONP pour effectuer des requêtes entre domaines au serveur jsontime , ce serveur expose une API JSON complète pour interroger les informations horaires et horaires.

Vous pouvez jouer avec le code ici et vous pouvez explorer l'API JSONP ici .

Hurler !, pas de code côté serveur!

Voulez-vous avoir le temps en Allemagne, ou le temps pour le fuseau horaire de l'utilisateur, où qu'ils se trouvent? Si cette dernière, la fonction Date() fonctionne par défaut dans le fuseau horaire local.

 var d = new Date(); // defaults to the current time in the current timezone if (d.getHours() < 12) { alert ("Good morning."); } else { alert ("Good afternoon."); } 

Vous devez injecter la date et l'heure de votre serveur Web dans un champ caché sur la page, puis vous pouvez accéder à cela avec jQuery et charger l'objet naturel Javascript Date . Vous ne voulez pas compter sur la date / heure côté client car il est hors de votre contrôle et pourrait être réglé sur quelque chose de scandaleux. Croyez-moi.