如何查看日期是否在30天内?

时间:2011-05-27 15:49:41

标签: javascript date

  

可能重复:
  Get difference between 2 dates in javascript?

我正在存储这样的日期变量:

var startYear = 2011;
var startMonth = 2;
var startDay = 14;

现在我想检查当天(今天)是否在开始日期的30天内下降。 我可以这样做吗?

var todayDate = new Date();
var startDate = new Date(startYear, startMonth, startDay+1);
var difference = todayDate - startDate;

????

我不确定这在语法上或逻辑上是否正确。

2 个答案:

答案 0 :(得分:11)

在JavaScript中,获取两个日期之间的时间跨度的最佳方法是获取其“时间”值(自纪元以来的毫秒数)并将其转换为所需的单位。这是一个获取两个日期之间天数的函数:

var numDaysBetween = function(d1, d2) {
  var diff = Math.abs(d1.getTime() - d2.getTime());
  return diff / (1000 * 60 * 60 * 24);
};

var d1 = new Date(2011, 0, 1); // Jan 1, 2011
var d2 = new Date(2011, 0, 2); // Jan 2, 2011
numDaysBetween(d1, d2); // => 1
var d3 = new Date(2010, 0, 1); // Jan 1, 2010
numDaysBetween(d1, d3); // => 365

答案 1 :(得分:1)

(todayDate.getTime() - startDate.getTime())/(1000*60*60*24.0)