Sie können die lokale Zeitzone des Client-Offset erhalten die GMT-Zeit zu erhalten und fügen Sie dann die Offset-Stunden der Deutschland Zeitzone (Mitteleuropäische Zeit 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.");
}
-Update : Ich stimme @Josh zu, der obige Code ist vollständig mandantenabhängig. Lassen Sie uns versuchen, es besser zu machen:
$(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);
}
})
});
Wir werden jetzt die Vorteile von JSONP domänenübergreifenden Anforderungen an den jsontime Server zu tun, dieser Server stellt eine komplette JSON API Zeit und Zeitzoneninformationen abzufragen. Sie können mit dem Code here spielen und Sie können die JSONP API here erkunden.
Hurra !, kein serverseitiger Code!
Verlassen Sie sich nicht auf das clientseitige Datum/die Uhrzeit. Es kann nicht garantiert werden, genau! –
Das hat wirklich nichts mit jQuery zu tun. –
Was ist mit der Tatsache, dass der Kunde immer Recht hat? Soweit der Benutzer sieht, ist ihre Zeit korrekt (auch wenn sie falsch ist). Die richtige Zeit von einem anderen Server zu erhalten zeigt dem Benutzer die falsche Zeit von ihrem Standpunkt aus an. – sean