Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测设备';s日期为';这不是真的吗JavaScript_Javascript_Date - Fatal编程技术网

如何检测设备';s日期为';这不是真的吗JavaScript

如何检测设备';s日期为';这不是真的吗JavaScript,javascript,date,Javascript,Date,如何使用javascript检查设备的日期是否为真? (例如:如果相关日期为2016/6/16,设备日期为2016/6/15,则显示警报)。无法判断设备的时钟是否100%准确。也就是说,您可以使用或尝试向受信任的服务器请求日期时间戳,并将其与设备报告进行比较。至少,在很大程度上涉及网络延迟的误差范围是有限的 总之,一些实用的东西: <script type="text/javascript"> function myCallback(json) { var interna

如何使用javascript检查设备的日期是否为真?
(例如:如果相关日期为2016/6/16,设备日期为2016/6/15,则显示警报)。

无法判断设备的时钟是否100%准确。也就是说,您可以使用或尝试向受信任的服务器请求日期时间戳,并将其与设备报告进行比较。至少,在很大程度上涉及网络延迟的误差范围是有限的

总之,一些实用的东西:

<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>

函数myCallback(json){
var internalNow=新日期();
var externalNow=新日期(json.dateString);
var msg='';
如果(
internalNow.getUTCFullYear()==externalNow.getUTCFullYear()
&&internalNow.getUTCMonth()==externalNow.getUTCMonth()
&&internalNow.getUTCDate()==externalNow.getUTCDate()
) {
msg='日期匹配';
}
否则{
msg='日期不匹配';
}
警报(msg);
}

这依赖于不支持HTTPS的www.timeapi.org。我不知道有类似的服务可以做到这一点。你最好自己设置计时服务。它也不会检查正常的、微小的波动,因此UTC午夜前后可能会出现问题。

仅凭客户的资料,您就不能。JS在该客户机内运行,因此只能看到客户机时钟提供的日期。垃圾输入垃圾输出-您需要将该客户机日期/时间与已知良好的外部源进行比较。当然,如果出现了严重错误,比如当你知道你的代码在2016年出现时,你报告了1972年,你可能会有一个小提示,那就是它不太正确。即使你与服务器交谈,你也可能会出现日期问题。考虑得到一个日期的UTC值以避免大多数时区问题。问一个可信的服务器。我怎么能跟服务器说话?看到这个网站,它没有任何问题。我希望任何JavaScript都能做到这一点,即使它会问另一个服务器。有免费的服务器吗?@ZiyadZadi更新非常感谢,这就是我一直在寻找的答案!如果(Math.abs(internalNow-externalNow)其中someLimit是您准备接受的差异,比如说±6e4,持续1分钟,那么执行
会简单得多。测试日期值具有±1ms至±8.64e7ms的任意精度,具体取决于一天中的时间。