如何检测设备的日期是否为真? - JavaScript

时间:2016-06-16 15:51:10

标签: javascript date

如何使用javascript检查设备的日期是否正确? (如:如果相关日期是2016/6/16,设备日期是2016/6/15。显示提醒)。

1 个答案:

答案 0 :(得分:0)

无法100%确定地判断设备的时钟是否正确。也就是说,您可以使用AJAXWebSockets尝试向受信任的服务器询问日期时间戳,并将其与设备报告的内容进行比较。至少,会有一个误差幅度,主要涉及网络延迟。

无论如何,实用的东西:

<script type="text/javascript">
  function myCallback(json) {
    var internalNow = new Date();
    var externalNow = new Date(json.dateString);
    var msg = '';
    if(
         internalNow.getUTCFullYear() == externalNow.getUTCFullYear()
      && internalNow.getUTCMonth() == externalNow.getUTCMonth()
      && internalNow.getUTCDate() == externalNow.getUTCDate()
    ) {
      msg = 'Date matches.';
    }
    else {
      msg = 'Date DOES NOT match.';
    }
    alert(msg);
  }
</script>
<script type="text/javascript" src="http://www.timeapi.org/utc/now.json?callback=myCallback"></script>

这取决于不支持HTTPS的www.timeapi.org。我不知道有类似的服务。您可能最好设置自己的时间服务。它也不检查正常的小波动,因此可能会在UTC午夜左右出现问题。