0

在我的 javascript 代码中,我只能以这种格式将日期作为字符串获取:示例:Mon May 28 11:20:46 EDT 2012

有没有办法可以检查该日期和当前日期是否>=超过 1 周?

4

3 回答 3

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');
}
于 2013-05-17T19:11:10.067 回答
0

只需使用您的日期字符串启动一个 Date 对象并将其时间戳与今天的时间戳进行比较

var d1 = new Date("Mon May 10 11:20:46 EDT 2013");
alert((new Date()) - d1 >=  (7 * 24 * 60 * 60 * 1000));
于 2013-05-17T19:24:33.623 回答
0

您应该了解时区缩写不保证是唯一的。解析具有时区缩写的日期字符串可能很危险。例如,你怎么知道这CST意味着美国的“中央标准时间”,而不是“中国标准时间”?查看此缩写列表,您会发现许多不同的时区在缩写时具有相同的字母。

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

此外,并非每个浏览器都支持解析您拥有的格式。如果您不喜欢这种格式,您应该考虑使用moment.js来解析日期字符串。不过,您仍然需要解决时区问题。

Moment.js 还有一些很棒的功能可以帮助你:

var now = moment();
if (now >= moment(yourDate).add('weeks', 1))
{
    ...
}
于 2013-05-18T03:43:11.970 回答