我的问题是,我希望能够获得两个时间戳,并比较第二个(以后进行的)时间戳与第一个时间戳之间的距离是否少于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分钟关闭页面。
像几秒钟一样检查时间会很聪明。
有什么好主意,如何实现这样的时间比较,而又不需要太多的计算机功能,却能像新月开始一样高效,并且东西不会弄乱它?
答案 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的currentFileTime
或currentDateTime
返回值来构造日期对象。
示例:
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的时间会略微缩短(几毫秒)