如何使用精度高的javascript基于时区id获取NTP时间

时间:2014-12-19 09:34:54

标签: javascript datetime timezone latency ntp

之前通过这种方式使用JavaScript来获取时区id。

    var tz = jstz.determine(); // Determines the time zone of the browser client
    var format = 'YYYY/MM/DD HH:mm:ss ZZ';
    alert(moment.tz('Europe/London').format(format));
    OR
    alert(moment.tz(tz.name()).format(format));

我使用两个库来获取客户端浏览器的时区ID,另一个获取日期&时间基于时区id。这两个库是

<script type="text/javascript" src="Scripts/jstz.min.js"></script>
<script src="Scripts/moment.min.js" type="text/javascript"></script>
<script src="Scripts/moment-timezone-with-data-2010-2020.min.js" type="text/javascript">

但问题是moment.js根据用户的pc日期时间设置给出时间。因此,如果用户的PC日期时间错误,则moment.js将返回错误的日期时间。所以我一直在寻找一种如何获得约会的方式在ntp协议之后的时区id的时间。但是我得到了这个url

的解决方案

他们的代码如下

// Get London time, and format it:
getTime('Europe/London', function(time){
    var formatted = time.getHours() + ':' 
                  + time.getMinutes() + ':'
                  + time.getSeconds();
    alert( 'The time in London is ' + formatted );
});

$.getTime = function(zone, success) {
    var url = 'http://json-time.appspot.com/time.json?tz='
            + zone + '&callback=?';
    $.getJSON(url, function(o){
        success && success(new Date(o.datetime), o);
    });
};

我理解上面的代码,它将调用time.json并传递时区ID和响应将根据时区ID返回新的日期和时间。

我有一个问题

1) please tell me someone that above js routine will return right date and time based on timezone id?

2)延迟是怎么回事。假设我打电话给time.json并在10秒后得到回复,可能是因为互联网速度缓慢或任何其他原因。在这种情况下,我怎么能得到正确的日期和时间。

因此,如果几秒钟或几分钟后回复,请指导我需要做什么才能始终获得正确的约会时间。 also discuss what other best way out there to get NTP date & time using javascript.寻求指导。

他的主要问题是延迟...如果我在几秒钟或几分钟后得到回复,那我怎么能重新计算时间以使其准确延迟或缓慢响应问题.....请指导我有人即可。感谢

0 个答案:

没有答案