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(":")

在startDate用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()方法轉成毫秒數,才能將兩個數字作相減

startDate endDate

接著用Math.floor()方法包住取回小時最大整數

Math.floor(29700000 / 1000 / 60 / 60 = 8.25) = 8

那轉換回分鐘比較麻煩要先將轉換出來的小時乘回毫秒數

(29700000 -= 8 * 1000 * 60 * 60) = -900000

一樣用Math.floor()包住

Math.floor(-900000 / 1000 / 60) = 15

再將轉換的數字作組合就是我們最後要得到的時間/images/emoticon/emoticon34.gif

resultTime hours minutes