2017-05-23 73 views
0

我有2個textfields(開始時間和結束時間)的頁面我正在使用HTML5時間元素,現在我想驗證開始時間總是小於結束時間,我目前使用下面的腳本來驗證使用jQuery驗證時間範圍

function checkTimings(source, argument) { 
        var sTime = new Date("01/01/0001 " + $("[id$=txtStartTimings]").val()); 
        var eTime = new Date("01/01/0001 " + $("[id$=txtEndTimings]").val()); 
        argument.IsValid = sTime < eTime; 
       } 

這項工作時,無論是兩個定時是上午還是下午,但有一個情況下,當開始時間是下午和結束時間會很喜歡十一時四十五分12.15 AM,這裏的驗證失敗。

任何人都可以建議我們如何處理這種情況?

+0

您應該在考慮日期和時間的情況下進行時間戳幫助驗證,而不需要檢查是否是| pm – Mithun

+0

將時間格式轉換爲24小時並驗證 –

回答

0

在計算之前是否可以將它們轉換爲24小時格式?

function checkTimings(source, argument) { 
       var sTime = new Date("01/01/0001 " + $("[id$=txtStartTimings]").GetHours()); 
       var eTime = new Date("01/01/0001 " + $("[id$=txtEndTimings]").GetHours()); 
       argument.IsValid = sTime < eTime; 
      } 
+0

即使轉換爲24小時也沒有幫助,因爲下午11:45會轉換爲23 :45和12:00 AM到00.00現在再次開始時間大於結束時間。 – Abbas

+0

怎麼樣,你做一個檢查,看看它是否在你認爲的前一天的時間範圍內,如果它在該範圍內,則爲該日添加+1? –

+0

但在這裏我不處理的一天,但只是在這個時間,所以用戶將只是設置時間,它可能是任何一天,一天不是這裏的關注。 – Abbas

0

您可以直接在數據構造函數中傳遞日期以獲取實際日期。

function checkTimings(source, argument) { 
        var sTime = new Date($("[id$=txtStartTimings]").val()); 
        var eTime = new Date($("[id$=txtEndTimings]").val()); 
        argument.IsValid = sTime < eTime; 
      } 

如果問題仍然存在,那麼只需在文本字段中更改日期的格式,或者也可以在js函數中解析日期。