我正在使用此功能,将今天的日期与过期日期进行比较。输入:expireStamp是一个以毫秒为单位的时间戳。
compDate = function(expireStamp) {
// expireStamp is a timestamp, convert it
var expireDate = new Date(expireStamp);
var notifyDate = new Date().setDate(expireDate.getDate() - 30);
var today = new Date(); // today
console.log("Today: " + today);
console.log("Notify: " + new Date(notifyDate));
console.log("Expire: " + expireDate);
if(today.getTime() <= notifyDate) {
// date is still good
return "good";
} else {
// date may be expired
if(today.getTime() > notifyDate && today.getTime() <= expireDate.getTime()) {
// date soon to expire
return "soon";
} else if(today.getTime() > expireDate.getTime()){
// date has expired
return "fail";
}
}
}
今天有2个日期可以查看过期日期,过期日期和过期日期前30天的通知日期。我遇到的问题是通知日期。如果我将来的过期日期设置得太远,通知日期就会很奇怪。以下是一些示例测试:
> var exp = new Date(1409362782000)
undefined
> exp
Fri Aug 29 2014 21:39:42 GMT-0400 (Eastern Daylight Time)
> var notify = new Date().setDate(exp.getDate() - 30);
undefined
> notify
1396183229815
> var test = new Date(notify);
undefined
> test
Sun Mar 30 2014 08:40:29 GMT-0400 (Eastern Daylight Time)
因此,我将过期日期设置为8月29日(今天是2014年4月4日),使用时间戳(以毫秒为单位)。这在未来相当多。如您所见,exp是正确的。
通知日期应该是30天之前,但通知是3月30日,我确信是在8月29日之前超过30天。日期接近今天,这很好。
我需要通知日期为到期日前30天
答案 0 :(得分:2)
> exp = new Date(1409362782000)
Sat Aug 30 2014 05:39:42 GMT+0400 (MSK)
> notify = new Date(exp.getTime() - (30 * 24 * 60 * 60 * 1000))
Thu Jul 31 2014 05:39:42 GMT+0400 (MSK)