我正在存储这样的日期变量:
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;
????
我不确定这在语法上或逻辑上是否正确。
答案 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)