Usted puede obtener el desplazamiento del cliente para obtener la hora GMT y luego añadir las horas de corrección de la Alemania zona horaria zona horaria local (Central European Time 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.");
}
actualización : Estoy de acuerdo con @Josh, el código anterior depende completamente del cliente. Vamos a tratar de hacerlo mejor:
$(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);
}
})
});
Ahora estamos tomando ventaja de JSONP hacer peticiones entre dominios en el servidor jsontime, este servidor expone una API JSON completa para consultar información de hora y zona horaria.
Puede jugar con el código here y puede explorar la API JSONP here.
¡Hurra !, ¡no hay código de servidor!
No confíe en la fecha/hora del lado del cliente. ¡No se puede garantizar la precisión! –
Esto realmente no tiene nada que ver con jQuery. –
¿Qué pasa con el hecho de que el cliente siempre tiene la razón? Por lo que el usuario está viendo, su tiempo es correcto (aunque puede ser incorrecto). Obtener el tiempo correcto de otro servidor mostrará al usuario el momento incorrecto desde su punto de vista. – sean