找出两个日期之间的差,并检查是否小于给定值

时间:2019-11-09 21:01:07

标签: time timestamp comparison difference

我的问题是,我希望能够获得两个时间戳,并比较第二个(以后进行的)时间戳与第一个时间戳之间的距离是否少于59分钟。 遵循此线程Compare two dates with JavaScript

日期对象可以完成这项工作。

但是我不满意的第一件事是它花费了我的系统时间。 是否可以从某些公共服务器上获取时间? 因为总是有机会在时间戳内操纵系统时钟,所以这太不可靠了。 一些外部资源会很棒。

然后,我不太确定如何获得2次之间的差异(使用2个日期对象)。 可能弹出的许多问题: 时间像3:59和6:12 因此,仅比较分钟数会给出错误的想法。 所以我们也考虑几个小时。 求模24的问题。 第3天23:59和第4天0:33也不会被视为正确。

所以也包括几天。 然后取30模,即使最上面的一个月一个月也变。 因此也要包括月份和年份。

所以我们需要整个日期,从当年到秒的所有日期(因为精确度也要秒) 并比较它们将需要大量的if子句来表示年,月等。

日期对象是否具有某些预先定义的日期比较功能,实际上将所有这些内容牢记在心(我什至提到了mentioned年,对吗?)

时间将是非常重要的原因,因为恰好在59分钟标记处(+-最大5秒没关系,但禁止平均接近60秒) 必须使用一定的功能才能成功关闭网站。 脚本在第0分钟打开网站,进行一些冲洗和重复样式操作,并在第59分钟关闭页面。

像几秒钟一样检查时间会很聪明。

有什么好主意,如何实现这样的时间比较,而又不需要太多的计算机功能,却能像新月开始一样高效,并且东西不会弄乱它?

1 个答案:

答案 0 :(得分:0)

您可以比较两个日期时间,但是在创建日期时间时,可以使用DateTime(value)参数。

您可以使用this API来获取当前UTC时间,该时间将返回示例JSON数组,如下所示:

{ 
   "$id":"1",
   "currentDateTime":"2019-11-09T21:12Z",
   "utcOffset":"00:00:00",
   "isDayLightSavingsTime":false,
   "dayOfTheWeek":"Saturday",
   "timeZoneName":"UTC",
   "currentFileTime":132178075626292927,
   "ordinalDate":"2019-313",
   "serviceResponse":null
}

因此,您可以使用该API的currentFileTimecurrentDateTime返回值来构造日期对象。

示例:

const date1 = new Date('2019-11-09T21:12Z') // time when I started writing this answer
const date2 = new Date('2019-11-09T21:16Z') // time when I finished writing this answer

const diff = new Date(date2-date1)
console.log(diff.toTimeString()) // time it took me to write this

请记住,由于网络速度的原因,时间API的时间会略微缩短(几毫秒)