可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Is there a way to get the real current UTC timestamp without being dependent on the client's time which might not be set correctly on every client?
I know with JavaScript's getTime()
I can get the UTC timestamp in milliseconds. It's independent of the client's timezone, but I think it's dependent of the client's current time.
I'm trying to make a live clock that shows the real UTC time, so it shouldn't matter if the client's time is set correctly or not for it to be correct.
回答1:
Get this JSON:
http://json-time.appspot.com/time.json
Or
http://www.timeapi.org/utc/now
Also you can get it from your own server if you have one.
For an example of the first one (with interval):
HTML:
<div id="time">Click the button</div> <button id="gettime">Get the time</button>
JAVASCRIPT (With 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/
回答2:
You can trust your server's clock*. Just send the current UNIX timestamp from the server to the client. Then can use in 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>
* Generally speaking, servers periodically synchronize their time with a time provider.
回答3:
you can use timeanddate api to get date and time without dependending on client machine or your server in php. Then send it to javascript.