2013-09-26 76 views
0

我有兩個文本字段中的值已格式化爲hh:mm,我如何比較這兩個字段的值?比較開始「時間」小於JavaScript中的結束「時間」

我想下面的代碼:

function check_ToFromTime(toTime) { 
    if (getControl('txtStartTimeFrom').value == '00:00' && getControl(toTime).value == '00:00') { return true; } 
    var fromDate = new Date(getControl('txtStartTimeFrom').value); 
    var toDate = new Date(getControl('txtEndTimeTo').value); 

    var fromT = fromDate.getTime(); 
    var toT = toDate.getTime(); 
    return (toT >= fromT); 
} 

的,如果在第一行語句的工作,但最後聲明
回報(TOT> = fromT); 不起作用。它總是返回false。我哪裏錯了?

回答

0

我不擔心將這些String對象轉換爲Date對象。剛剛拆分字符串和比較:

var fromDate = "04:05"; 
var toDate = "04:04"; 
var fromTokens = fromDate.split(":"); 
var toTokens = toDate.split(":"); 
alert(fromTokens[0] < toTokens[0] || (fromTokens[0] == toTokens[0] && fromTokens[1] < toTokens[1])); 

你可以在一個不錯的功能,把這個功能重新可用性:

function isAfter(fromDate, toDate){ 
    var fromTokens = fromDate.split(":"); 
    var toTokens = toDate.split(":"); 
    return (fromTokens[0] < toTokens[0] || (fromTokens[0] == toTokens[0] && fromTokens[1] < toTokens[1])); 
} 

//Tests 
alert(isAfter("04:04", "05:05")); 
alert(isAfter("06:04", "05:05")); 
alert(isAfter("05:05", "05:05")); 

JS小提琴:http://jsfiddle.net/X5v5F/

我不會要走這條路,因爲我認爲分割這些字符串已經足夠了,但是如果你固定了一個日期,我會推薦使用Moment.js。

+0

有沒有必要拆分字符串作爲04:05評估小於04:06 – WindsorAndy

0

它總是會打印錯誤,因爲結束時間將始終大於開始時間.U需要更改條件,即返回(至T < = fromT);

相關問題