Javascript 在一定范围内检查两个日期
我有两个约会,一个是新约会;和另一个相同格式的日期,我想检查另一个日期是否在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,然后将其切分为分钟的第二个整数,并将它们进行比较,如下所示: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
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
您是否考虑过使用?…两个日期,一个是新日期;另一个相同格式的日期…是非序号。日期对象没有格式。您真正要问的是如何解析日期字符串或时间戳。请参阅,然后简单地从另一个日期中减去一个日期,以毫秒为单位计算差值。