Принятый ответ хорош и вдохновил меня, когда я написал библиотеку для решения этой проблемы.Библиотека дает более точные ответы, рассматривая время самой загрузки, а не всю страницу (как было сделано с помощью performance.timing выше), а затем получает еще большую точность, выполняя последовательность из 10 запросов XMLHttpRequest.Кроме того, учитывая вашу вторую проблему, моя библиотека не игнорирует миллисекунды (как и принятый ответ).
Библиотека называется ServerDate и доступна бесплатно.
Вот часть README:
Вы можете использовать ServerDate
, как если бы вы использовали функцию Date
или один из ее экземпляров, например:
> ServerDate()
"Mon Aug 13 2012 20:26:34 GMT-0300 (ART)"
> ServerDate.now()
1344900478753
> ServerDate.getMilliseconds()
22
Существует также новыйметод для получения точности оценки ServerDate часов сервера (в миллисекундах):
> ServerDate.toLocaleString() + " ± " + ServerDate.getPrecision() + " ms"
"Tue Aug 14 01:01:49 2012 ± 108 ms"
Вы можете увидеть разницу между часами сервера и часами браузеров в миллисекундах:
> ServerDate - new Date()
39