Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在一定范围内检查两个日期_Javascript_Date - Fatal编程技术网

Javascript 在一定范围内检查两个日期

Javascript 在一定范围内检查两个日期,javascript,date,Javascript,Date,我有两个约会,一个是新约会;和另一个相同格式的日期,我想检查另一个日期是否在1分钟内 例如,如果我有日期Sun Feb 25 2018 21:57:44 GMT+0000 GMT标准时间,那么Sun Feb 25 2018 21:56:44 GMT+0000 GMT标准时间和Sun Feb 25 2018 21:58:44 GMT+0000 GMT标准时间之间的任何内容都将被视为真 我尝试将其转换为ISOString,然后将其切分为分钟的第二个整数,并将它们进行比较,如下所示: parseInt

我有两个约会,一个是新约会;和另一个相同格式的日期,我想检查另一个日期是否在1分钟内

例如,如果我有日期Sun Feb 25 2018 21:57:44 GMT+0000 GMT标准时间,那么Sun Feb 25 2018 21:56:44 GMT+0000 GMT标准时间和Sun Feb 25 2018 21:58:44 GMT+0000 GMT标准时间之间的任何内容都将被视为真

我尝试将其转换为ISOString,然后将其切分为分钟的第二个整数,并将它们进行比较,如下所示:

parseInt(new Date().toISOString().slice(0, 16).split(':')[1]);
但是我认为这是低效的,而且不考虑日期/日期/小时。< /P> 我该怎么做呢?

类似这样的事情:

const f = (d1, d2) => {
 if(d1.getTime() > d2.getTime())
  return d1.getTime() - d2.getTime() <= 60000; 
 return d2.getTime() - d1.getTime() <= 60000;
}

console.log(f(new Date(2018,25,2,21,57,44), new Date(2018,25,2,21,58,44)))  //true
console.log(f(new Date(2018,25,2,21,57,44), new Date(2018,25,2,21,56,44)))  //true
console.log(f(new Date(2018,25,2,21,57,44), new Date(2018,25,2,21,56,43)))  //false

60000是一分钟转换为毫秒

您可以这样做:

const compareDates = (a, b) => {
    const oneMinute = 1000 * 60;
    return a >= (b - oneMinute);
}
像这样使用它:

const firstDate = new Date('2017-02-25T22:05:01.0Z');

const secondDate = new Date('2017-02-25T22:05:59.0Z');

const thirdDate = new Date('2017-02-25T22:06:59.0Z');

compareDates(firstDate, secondDate);
// true

compareDates(firstDate, thirdDate);
// false
您是否考虑过使用?…两个日期,一个是新日期;另一个相同格式的日期…是非序号。日期对象没有格式。您真正要问的是如何解析日期字符串或时间戳。请参阅,然后简单地从另一个日期中减去一个日期,以毫秒为单位计算差值。