2013-05-17 182 views

回答

2

只是减去他们

var today = new Date(), 
    test = new Date(dateString); 

if (today - test > (7 * 24 * 60 * 60 * 1000)) { // time is in milliseconds 
    console.log('more than a week ago'); 
} 
0

刚刚开始使用日期字符串Date对象,并与今天的

var d1 = new Date("Mon May 10 11:20:46 EDT 2013"); 
alert((new Date()) - d1 >= (7 * 24 * 60 * 60 * 1000)); 
0

你应该明白,时区的缩写比较其时间戳不能保证是唯一的。解析具有时区缩写的日期字符串可能很危险。例如,您怎么知道CST在美国意味着“中央标准时间”,而不是“中国标准时间”?请参阅this list of abbreviations,您会发现许多不同的时区在缩写时具有相同的字母。

大多数浏览器会根据您的本地区域做出一些假设。但是你可能不想依赖这个。

此外,并非所有浏览器都支持解析您的格式。如果你坚持使用这种格式,你应该考虑使用moment.js来解析日期字符串。尽管如此,你仍然有时区问题。

Moment.js也有一些强大的功能,将帮助你:

var now = moment(); 
if (now >= moment(yourDate).add('weeks', 1)) 
{ 
    ... 
}