Как я могу получить местное время в JQuery?

13
задан GEOCHET 31 March 2009 в 01:26
поделиться

3 ответа

Можно заставить локальное смещение часового пояса клиента получать время GMT и затем добавлять часы смещения часового пояса Германии (Центрально-европейское время 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.");
}

Обновление: я соглашаюсь с @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 , этот сервер подвергает полный API JSON информации о часовом поясе и времени запроса.

можно играть с кодом здесь , и можно исследовать JSONP API здесь .

Ура!, никакой серверный код!

24
ответ дан CMS 31 March 2009 в 12:26
поделиться

Вы хотите получить время в Германии, или время для часового пояса пользователя, везде, где они? Если последний, Date() функциональные значения по умолчанию для работы в локальном часовом поясе.

var d = new Date();    // defaults to the current time in the current timezone
if (d.getHours() < 12) {
    alert ("Good morning.");
} else {
    alert ("Good afternoon.");
}
6
ответ дан nickf 31 March 2009 в 12:26
поделиться
  • 1
    Невозможно найти живого человека от поддержки Kaspersky. Они только предлагают поддержку через плату форума. Только обычные пользователи это don' t понимают, что проблема (предлагающий довольно глупые/основные ответы) отвечает там. Я просто добрался только моих сообщений, удаленных из " Ошибка reports" область. Очевидно, они won' t принимают это как являющееся ошибкой в их программном обеспечении. Так, можно быть правы: нет ничего, что мы можем сделать о Kaspersky. Но по крайней мере мы сообщаем сообществу Дельфи об этой большой проблеме. – WeGoToMars 17 September 2010 в 11:41

Необходимо ввести дату/время от веб-сервера в скрытое поле на странице, и затем можно получить доступ к этому с jQuery и загрузить естественный объект Даты JavaScript. Вы не хотите полагаться на клиентскую дату/время, потому что она находится вне Вашего контроля и могла быть установлена на что-то возмутительное.Поверьте мне.

4
ответ дан 1 December 2019 в 19:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: