【问题标题】:How to check if date is within 30 days? [duplicate]如何查看日期是否在 30 天内? [复制]
【发布时间】:2011-09-03 12:35:22
【问题描述】:

可能重复:
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;

??????

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

【问题讨论】:

  • 将“javascript 日期比较”输入谷歌。你试过了吗?

标签: javascript date


【解决方案1】:

在 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

【讨论】:

  • 我试过这个:pastie.org/1981365 但它总是给我正整数...我想知道当前日期是之前还是之后...
  • @ssdesign:如果开始日期在今天之前,您的代码应该返回一个负整数;我的代码可以通过删除减法周围的Math.abs 来修改。
【解决方案2】:
(todayDate.getTime() - startDate.getTime())/(1000*60*60*24.0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2010-10-06
    • 2011-10-31
    • 1970-01-01
    • 2018-11-09
    • 2011-03-13
    • 2011-12-26
    相关资源
    最近更新 更多