JavaScript - как мне сделать getTime () равномерным на всех компьютерах? - PullRequest
0 голосов
/ 17 июня 2011

Прямо сейчас я получаю другой номер на рабочем столе, чем на своем ноутбуке.

Ответы [ 6 ]

2 голосов
/ 17 июня 2011

getTime () использует настройки местного времени.Настройки времени можно изменить в одном из двух мест:

  1. Ваша ОС (например, Windows) может управлять временем;дважды щелкните по нему на панели задач
  2. Ваша ОС использует системный BIOS, это одна из причин того, что на материнских платах установлена ​​батарея на mobo (для сохранения времени и настроек в случае сбоя системы), изменения ввремя в вашем BIOS должно отражаться в ОС, и, следовательно, в JavaScript

Альтернативой является создание собственной функции getTime, которая извлекает время из одного источника, такого как сервер.Если вы хотите минимизировать сетевые вызовы, возможно, стоит потянуть это время один раз и одновременно сделать вызов getTime ().Затем в другое время, когда это необходимо, снова выполните getTime (), вычтите разницу и добавьте ее к времени сервера. Примечание: если время важно, я советую против этого, поскольку пользователь может легко изменить свои системные часы

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

2 голосов
/ 17 июня 2011

Вместо того, чтобы использовать метод javascript getTime(), вам следует переосмыслить свой вариант использования.

Если вы ищете метку времени для отправки формы (например, для комментария или публикации формы), вам нужно, чтобы сервер генерировал метку времени при обработке POST

Если вы хотите иметь согласованное время на стороне клиента, рассмотрите возможность вызова ajax простого веб-приложения, которое возвращает временную метку. Вы можете легко написать его самостоятельно или использовать Службу времени Yahoo

1 голос
/ 17 июня 2011

Синхронизация часов.

В ОС должна быть возможность использовать службу сетевого времени.Разница все еще может быть незначительной, но она не должна превышать одну или две секунды, что достаточно для большинства целей.Насколько близко они вам нужны?

0 голосов
/ 17 июня 2011

Это может быть по разным причинам.Наиболее вероятные причины:

  • Часы не могут быть установлены одинаково.Один (или оба) может быть неправильным.
  • Часы могут использовать разные часовые пояса.
0 голосов
/ 17 июня 2011

Вы не можете, по крайней мере, не с одним JavaScript.JavaScript использует системную информацию на клиентском компьютере для определения времени.Теперь, если они находятся в разных часовых поясах, вы можете использовать функцию UTC(), чтобы получить их в формате UTC (секунды с полуночи, 1 января 1970 г.), но, скорее всего, они просто не синхронизированы.

0 голосов
/ 17 июня 2011

getTime () возвращает системное время компьютера.Однако, если вам действительно нужно синхронизировать данные, лучше всего синхронизировать их с имеющимся веб-сервером.Ура!

...