[英]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.