繁体   English   中英

JavaScript跨浏览器日期比较?

[英]JavaScript cross-browser date comparison?

我正在尝试使用jQuery插件jStorage保留一些本地HTML以及该块插入本地存储中的日期和时间,因此基于时间比较,如果经过5分钟,它将在本地存储中进行更新。

目前,它可以在所有浏览器上使用,但对于IE8及更低版本,它并不令人惊讶。 IE返回NaN

您能否建议我如何存储日期并将其与当前时间进行比较-需要5分钟才能跨浏览器浏览? 也许以毫秒为单位,或者是所有浏览器都可以识别的某种时间格式?

这是代码:

$(document).ready(function() {

  var side_user_cp = $.jStorage.get("side_user_cp");
  var latest_update = new Date($.jStorage.get("latest_update")); // Here is where I get NaN with IE
  var now_date = new Date();

  if(!side_user_cp || !latest_update){ // If browser doesn't support local storage, or it first time visit, load it with AJAX
    $.get('/ajax/side_user_cp/', function(data) {
            $.jStorage.set("latest_update",now_date);
            $.jStorage.set("side_user_cp",data);
            $('#side').prepend(data);
          });
  }
  else // Browser has support, so check should it be loaded with with AJAX or from Local storage
  {
    var check_date = new Date(now_date);
    check_date.setMinutes(check_date.getMinutes()-5);

    if(check_date > latest_update) // latest_update from Loacal storage is here NaN
    {
      $.get('/ajax/side_user_cp/', function(data) {
            $.jStorage.set("latest_update",now_date);
            $.jStorage.set("side_user_cp",data);
            $('#side').prepend(data);
       });
    }
    else
    {
      $('#side').prepend(side_user_cp);
    }
});

您要存储一个“ Date” 实例 ,然后将其传递回Date构造函数。 那可能不是您想要的。

您可以存储原始数字时间戳记:

    $.jStorage.set("latest_update", now_date.getTime());

然后将其传递给以后构造一个新的Date是有意义的。

(请注意,这只是个猜测;我正在尝试弄清IE8是否会如您所描述的那样混淆,如果Date构造函数传递了Date,但是jsfiddle目前似乎有问题:/)

编辑 - 不-虚假。 ... 再次编辑,但显然这很有帮助(??)。 当我说这是“伪造的”时,我的意思是,从另一个Date实例化一个Date似乎IE可以。 但是,问题可能是Date对象无法成功存储在本地存储中?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM