Вы можете получить локальное смещение часового пояса клиента, чтобы получить время по Гринвичу, а затем добавить часы смещения часового пояса Германии (центральноевропейское время по Гринвичу + 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.");
}
Обновление: Я согласен с @Josh, приведенный выше код полностью зависит от клиента. Давайте попробуем сделать это лучше:
$(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);
}
})
});
Теперь мы используем JSONP для выполнения междоменных запросов к серверу jsontime , этот сервер предоставляет полный JSON API для запроса времени и информации о часовом поясе.
Вы можете поиграть с кодом здесь и изучить JSONP API здесь .
Ура !, нет серверного кода!