Intereting Posts
Компиляция php с модулями vs с использованием общих модулей? Изображения не загружаются в Symfony 2.8 TinyMVC всегда показывает контроллер по умолчанию Что такое регулярное выражение PHP для преобразования текста, содержащего URL-адрес в гиперссылку? Создание пустого 2D-массива в PHP? CkFinder Режим «Редактировать», как установить настройки «Сохранить изменения» («Перезаписать файл») Проверьте, правильно ли сформирован удаленный файл XML с PHP php file_get_contents и & amp; css / php: как решить эту проблему с float div / нечетный четный цикл в массиве Преобразование армейского времени в основное время AM PM в PHP API Google Analytics – получить токен доступа без аутентификации с помощью экрана согласия Персонализация Laravel, связанная с проблемой внешнего ключа Непоследовательные результаты с API PHP Reflection Самый эффективный подход для многоязычного веб-сайта PHP Геолокация MySQL Query

Как получить реальную временную метку UTC (независимый от клиента)?

Есть ли способ получить реальную текущую временную метку UTC, не завися от времени клиента, которое может быть неправильно установлено на каждом клиенте?

Я знаю, с помощью getTime() я могу получить getTime() метку UTC в миллисекундах. Он не зависит от часового пояса клиента, но я думаю, что он зависит от текущего времени клиента.

Я пытаюсь сделать часы в реальном времени, которые показывают реальное время UTC, поэтому не имеет значения, установлено ли время клиента правильно или нет, чтобы оно было правильным.

Получите этот JSON:

 http://json-time.appspot.com/time.json 

Или

 http://www.timeapi.org/utc/now 

Также вы можете получить его со своего сервера, если он у вас есть.

Пример первого (с интервалом):

HTML:

 <div id="time">Click the button</div> <button id="gettime">Get the time</button> 

JAVASCRIPT (с JQuery):

 $("#gettime").click(function() { setInterval(ajaxCalltoGetTime, 1000); }); function ajaxCalltoGetTime() { $.ajax({ type: "GET", url: 'http://json-time.appspot.com/time.json', dataType: 'jsonp' }) .done(function( msg ) { $("#time").html(msg.hour + ":" + msg.minute + ":" + msg.second ); }); 

JSFiddler: http://jsfiddle.net/op8xdsrv/

Вы можете доверять часам своего сервера *. Просто отправьте текущую временную метку UNIX с сервера на клиент. Затем можно использовать в JavaScript Date(value) constructor.

 <script> var serverTime = new Date(<? php echo time(); ?> * 1000); console.log( serverTime.getUTCFullYear(), serverTime.getUTCMonth() + 1, serverTime.getUTCDate(), serverTime.getUTCHours(), serverTime.getUTCMinutes(), serverTime.getUTCSeconds() ); // use this time to seed your JavaScript clock </script> 

* Вообще говоря , серверы периодически синхронизируют свое время с провайдером времени.

вы можете использовать timeanddate api для получения даты и времени без зависимости от клиентской машины или вашего сервера в php. Затем отправьте его на javascript.