2017-07-27 72 views
0

在javascript中比較24小時格式的2次「時間」的最佳方式是什麼?如何在javascript中比較24小時格式的2次

我已將時間轉換爲24小時格式。

對於例如:

t1, t2; //These are 2 time in 24 hour format of **string** type 
     //Like t1="19:32" and t2 = "02:09" 

if(t1<t2){} // Will this directly work for all times? 

任何引線理解。

+0

字符串比較不會產生與數字比較相同的結果。 –

+4

@Scott如果格式總是'HH:SS',字典學比較碰巧做同樣的事情,雖然... – deceze

+0

它會工作,但代碼會混淆人。 –

回答

0

一種方法可以做到這一點,如果時間是在HH一個字符串,始終:MM和24小時格式,是解析字符串,並將其進行比較之前轉換成分鐘數。例如:

var time1 = "10:30"; 
var time2 = "12:30"; 

var time1InMinutesForTime1 = getTimeAsNumberOfMinutes(time1); 
var time1InMinutesForTime2 = getTimeAsNumberOfMinutes(time2); 

var time1IsBeforeTime2 = time1InMinutesForTime1 < time1InMinutesForTime2; 

function getTimeAsNumberOfMinutes(time) 
{ 
    var timeParts = time.split(":"); 

    var timeInMinutes = (timeParts[0] * 60) + timeParts[1]; 

    return timeInMinutes; 
} 

在這個例子中,time1將制定出在60030分鐘和time2將制定出在72030分鐘,轉向比較成兩個數字之間的支票。

+0

時間可以比作字符串。雖然轉換爲常用單位並將其作爲數字進行比較是一種有效的策略,但這不是必需的。 – RobG

+0

@RobG,我完全同意,並且我投了票(儘管你看不到那個!=)這個陳述的評論。 *然而,我發佈了我的答案,因爲它能夠更清楚地說明正在做的事情,並且如果有時間在「HH:MM {AM | PM}」的人偶然出現,或者如果HH不是零 - 補齊;在問題中既不是要求,但如果我可以給出一個滿足OP問題和其他情況的答案,我喜歡這樣做=) – Rob

相關問題