如何获得两个 Date.now() 之间的时差(以小时为单位)?
How to get the time difference in hours between two Date.now()?
我有一个对象,它经常使用时间序列戳进行更新,例如:
obj = [{
"value": 48.52062,
"timestamp": 1652848223325
},
{
"value": 43.33057,
"timestamp": 1652838323281
},
{
"value": 55.95403,
"timestamp": 1652833823275
},
{
"value": 51.71021,
"timestamp": 1652830223280
},
{
"value": 58.44382,
"timestamp": 1652829323276
}]
如何获取这些时间戳之间的小时数?我正在尝试这样的事情:
var timeStart = new Date(1652848686623).getHours();
var timeEnd = new Date(1652836523287).getHours();
var hourDiff = timeEnd - timeStart;
console.log(hourDiff)
但是我得到的输出是 21,这是错误的,它只是 3。
这是因为 Date
对象的 .getHours()
方法只是 return 对象表示的一天中的小时。它不是 return 自纪元以来的总小时数,因此您不能简单地减去这两个值来获得有意义的结果。
你可以通过简单的减法和除法实现你想要的:
const timeStart = new Date(1652836523287)
const timeEnd = new Date(1652848686623)
const hourDiff = (timeEnd - timeStart) / 1000 / 60 / 60
请注意,我交换了两个时间戳,因为显然 165284...
是 after 165283...
.
您不能只在日期上使用 getHours()
,然后减去它们,因为“小时”是一天中的时间,而不是“绝对”时间。
相反,您可以只用开始时间戳减去结束时间戳,然后除以 3600000
(或 1000 * 60 * 60
)以将其转换为小时。
function getHourDiff(start, end) {
return Math.floor((end - start) / 3600000)
}
const timeStart = 1652836523287;
const timeEnd = 1652848686623
console.log(getHourDiff(timeStart, timeEnd));
const timeStart = new Date(1652836523287)
const timeEnd = new Date(1652848686623)
const hourDiff = Math.abs(timeEnd - timeStart) / 36e5
console.log(hourDiff)
我有一个对象,它经常使用时间序列戳进行更新,例如:
obj = [{
"value": 48.52062,
"timestamp": 1652848223325
},
{
"value": 43.33057,
"timestamp": 1652838323281
},
{
"value": 55.95403,
"timestamp": 1652833823275
},
{
"value": 51.71021,
"timestamp": 1652830223280
},
{
"value": 58.44382,
"timestamp": 1652829323276
}]
如何获取这些时间戳之间的小时数?我正在尝试这样的事情:
var timeStart = new Date(1652848686623).getHours();
var timeEnd = new Date(1652836523287).getHours();
var hourDiff = timeEnd - timeStart;
console.log(hourDiff)
这是因为 Date
对象的 .getHours()
方法只是 return 对象表示的一天中的小时。它不是 return 自纪元以来的总小时数,因此您不能简单地减去这两个值来获得有意义的结果。
你可以通过简单的减法和除法实现你想要的:
const timeStart = new Date(1652836523287)
const timeEnd = new Date(1652848686623)
const hourDiff = (timeEnd - timeStart) / 1000 / 60 / 60
请注意,我交换了两个时间戳,因为显然 165284...
是 after 165283...
.
您不能只在日期上使用 getHours()
,然后减去它们,因为“小时”是一天中的时间,而不是“绝对”时间。
相反,您可以只用开始时间戳减去结束时间戳,然后除以 3600000
(或 1000 * 60 * 60
)以将其转换为小时。
function getHourDiff(start, end) {
return Math.floor((end - start) / 3600000)
}
const timeStart = 1652836523287;
const timeEnd = 1652848686623
console.log(getHourDiff(timeStart, timeEnd));
const timeStart = new Date(1652836523287)
const timeEnd = new Date(1652848686623)
const hourDiff = Math.abs(timeEnd - timeStart) / 36e5
console.log(hourDiff)