Серверное время на JavaScript

Обычно на страницах сайтов при манипуляциях со временем программисты используют объект Date. Например вывести время, которое изменяется каждую секунду или в зависимости от текущего времени выводить какие-то события, обратные отсчеты и т.п.

Но ведь объект Date берет значение из системного времени в ОС пользователя. То есть полностью на стороне клиента. А если пользователь находится в другом часовом поясе, приложение, которое заточено под показ событий на серверное время будет работать не правильно.

Одним из вариантов работы на стороне клиента именно с серверным временем будет следующий пример:

В html-коде пишем следующий код между тегами head, обязательно перед подключением сторонних javascript файлов, т.к. страница грузит сторонние скрипты синхронно, ибо они могут влиять на дальнейшее отображение.

Здесь мы передаем с сервера время в формате Unix-time и присваиваем в глобальную переменную.

Затем ставим таймер на увеличение значение времени каждую секунду.

Грубо говоря, мы запустили свои часы на странице.

Теперь вместо:

Math.round(new Date().getTime() / 1000)
смело используем нашу переменную «realtime», которая будет содержать юникстайм с погрешностью в несколько секунд.

Этот вариант конечно не идеален, будет погрешность на время передачи данных и загрузки их в браузер, но для приложений, где 1-5 секунд не играют роли, можно пользоваться.

Информация
Автор webmancer Нравится 0
Рейтинг 1 Не нравится 0
Голосов 1 Прочитали 1
Дата 2011-11-18 09:00:00 В избранном 0
Ваша реакция

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

Зарегистрироваться

Авторизоваться

На рекомендательном сервисе WEBmancer.Org только зарегистрированные пользователи могут комментировать и оставлять рецензии. Авторизованный пользователь так же может ставить отметки книгам, фильмам и другим постам. Вести учет прочитанных книг и просмотренных фильмов. Добавлять посты в избранное и иметь к ним быстрый доступ.