我有一個經常使用時間序列標記更新的物件,例如:
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。
uj5u.com熱心網友回復:
這是因為物件的.getHours()
方法Date
只回傳物件表示的一天中的小時。它不回傳自紀元以來的總小時數,因此您不能簡單地將兩個值相減以獲得有意義的結果。
您可以通過簡單的減法和除法來實作您想要的:
const timeStart = new Date(1652836523287)
const timeEnd = new Date(1652848686623)
const hourDiff = (timeEnd - timeStart) / 1000 / 60 / 60
請注意,我交換了兩個時間戳,因為顯然165284...
是在 165283...
.
uj5u.com熱心網友回復:
您不能只使用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));
uj5u.com熱心網友回復:
const timeStart = new Date(1652836523287)
const timeEnd = new Date(1652848686623)
const hourDiff = Math.abs(timeEnd - timeStart) / 36e5
console.log(hourDiff)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/478146.html
標籤:javascript 约会时间 时间序列 时间戳