检查日期字符串是否大于 3 天

AJ1*_*152 5 javascript

我需要一些有关 javascript 代码的帮助,如果第二个日期大于 3 天,我需要检查两个字符串日期值(第一个日期和第二个日期),我以字符串格式获取值mm/dd/yyyy。请帮忙。

var firstDate = '10/01/2019'
var secondDate = '10/04/2019'

if ((inputData.firstDate) + 3 === inputData.secondDate) {
  return {
    dateCheck: 'Not greater than 3 days'
  };
} else {
  return {
    dateCheck: 'Greater than 3 days'
  };
}
Run Code Online (Sandbox Code Playgroud)

Rok*_*jan 7

N向您使用的日期添加天数Date.getDate() + N

var d1 = new Date('10/01/2019');
var d2 = new Date('10/04/2019');
var isGreater = +d2 > d1.setDate(d1.getDate() + 3); // false (equals three days)
Run Code Online (Sandbox Code Playgroud)

鉴于上述内容,您可以创建一个简单的可重用函数

var d1 = new Date('10/01/2019');
var d2 = new Date('10/04/2019');
var isGreater = +d2 > d1.setDate(d1.getDate() + 3); // false (equals three days)
Run Code Online (Sandbox Code Playgroud)

回顾一下:创建一个函数,在N向日期添加天数后,计算两个时间戳。

日期.setDate MDN
日期.getDate MDN


Dac*_*nny 0

也许您可以定义一个辅助函数来解析您的输入日期字符串,以便您可以在应用了 3 天偏移量的每个日期之间进行比较,如下所示:

var firstDate = '10/01/2019'
var secondDate = '10/04/2019'

/*
Define helper function to parse input date string and
return the date as milliseconds since epoch time, whihch
gives us an easy format to compare offset dates
*/
function parseDate(str) {
  
  /*
  Break input string into date parts
  */
  const parts = str.split('/').map(p => parseInt(p));
  
  /*
  Create date object and populate parts
  */
  const date = new Date();
  date.setTime(0);
  date.setDate(parts[0]);
  date.setMonth(parts[1] - 1);
  date.setFullYear(parts[2]);

  /*
  Return date in milliseconds
  */
  return date.getTime()
}

/*
If first input date + 3 days (in milliseconds) is less than second input
date, then second date is not greater than 3 days since first date
*/
if (parseDate(firstDate) + (86400000 * 3) < parseDate(secondDate)) {
  console.log('Not greater than 3 days');
} else {
  console.log('Greater than 3 days');
}
Run Code Online (Sandbox Code Playgroud)