08:30
- 00:15
= 08:15
08:15
才是我們這次要取得的時間JavaScript
var time = "08:30";
_startTime = time.split(":");
var startDate = new Date(0, 0, 0, _startTime[0], _startTime[1], 0);
var endDate = new Date(0, 0, 0, 0, 15, 0);
var diff = startDate.getTime() - endDate.getTime();
var hours = Math.floor(diff / 1000 / 60 / 60);
diff -= hours * 1000 * 60 * 60;
var minutes = Math.floor(diff / 1000 / 60);
resultTime = hours + ":" + minutes;
_startTime
= 範例上08:30
我們要先將小時跟分鐘分開所以用split(":")
new Date()
取得時間結果 Sun Dec 31 1899 08:30:00 GMT+0800 (台北標準時間)
_endDate
因為我是要固定減15分鐘所以new Date()
之後分鐘的位子就固定放15結果 Sun Dec 31 1899 00:15:00 GMT+0800 (台北標準時間)
getTime()
方法轉成毫秒數,才能將兩個數字作相減diff |
startDate |
endDate |
---|---|---|
29700000 |
-2209073400000 |
-2209103100000 |
Math.floor()
方法包住取回小時最大整數Math.floor(29700000 / 1000 / 60 / 60 = 8.25) = 8
(29700000 -= 8 * 1000 * 60 * 60) = -900000
Math.floor(-900000 / 1000 / 60) = 15
resultTime |
hours |
":" |
minutes |
---|---|---|---|
08:15 |
08 |
":" |
15 |
你只是要相減時間嗎?
這算法也太累@@
這樣就好...
var date = new Date();
date.setMinutes(date.getMinutes()-15);
console.log(`realTime = ${date.getHours()}:${date.getMinutes()}`)
感謝大大的提醒!!!!!!
讓我可以更簡化程式碼!! 感謝~