как проверить текущую дату и время в Jquery - PullRequest
18 голосов
/ 11 августа 2009

Просто интересно, есть ли способ проверить текущую дату и время в Jquery.

Ответы [ 3 ]

21 голосов
/ 11 августа 2009

В JavaScript вы можете получить текущую дату и время, используя объект Date ;

var now = new Date();

Это даст время локального клиентского компьютера, если вы хотите выполнить настройку часового пояса или получить время с сервера, проверьте мой ответ на этот вопрос .


Редактировать: В ответ на ваш комментарий вы можете очень легко получить время сервера на стороне клиента:

time.php

<? echo '{serverTime: new Date(' . time()*1000 .')}';?>

Создается простая строка JSON с новым объектом Date, инициализированным с текущим сервером time , это значение умножается на 1000, поскольку PHP обрабатывает метки времени в секундах, а JavaScript делает это в миллисекундах.

А на другом вы можете получить серверное время так:

$.getJSON('time.php', function (data) {
  alert(data.serverTime);
});

Просто сделайте getJSON запрос на получение даты из time.php и доступ к свойству serverTime возвращенного объекта.

6 голосов
/ 11 августа 2009

Не очень хорошая практика получать текущую дату и время с клиентского компьютера.

Сделайте эту проверку серверной стороной.

Вы можете использовать jQuery, чтобы сделать запрос Ajax на страницу, а затем вернуть текущую дату и время.

2 голосов
/ 11 августа 2009

Чтобы уточнить ответы, предоставленные до сих пор ...

  1. Получение текущей даты не является чем-то необходимым для использования jquery (даже если у него была возможность сделать это),поскольку необработанный javascript предоставляет эту возможность.

    var currentTimeAndDate = new Date ();

  2. За очень немногими исключениями, вам следует избегать получения текущего времени / даты от клиентамашина, так как у вас нет возможности узнать, правильно ли установлены их часы.Всегда получать дату времени с сервера, чтобы обеспечить некоторый уровень предсказуемости.Это, однако, также небезопасно, так как клиент может быть на один день впереди или позади сервера, поэтому вам придется решить, как справиться с ситуацией так, как вам подходит.

ОБНОВЛЕНИЕ:

Также необходимо различать получение даты / времени статически и динамически.

Статически это когда сервер отображает время / дату внепосредственно на странице - например, вы можете захотеть иметь «Эта страница была сгенерирована в 12:34 по Гринвичу 24 июля 1962 года» (что было бы неплохо, учитывая, что веб-серверы не существовали в 1962 году).

Динамически - это когда клиентская страница активно обновляет отображение времени с помощью вызовов AJAX, чтобы запросить у сервера текущее время - этот метод описывается в ответе, предоставленном @ CMS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...