2016-02-25 120 views
1

有timepricker爲24小時設置爲跟隨者:比較jQuery的timepicker值

$(document).ready(function(){ 
    $('input.timepicker').timepicker({ 
     timeFormat: 'HH:mm', 
     minTime: '04:00', 
     interval: 10, 
     scrollbar: true, 
     dynamic: true 
    }); 
}); 

我有兩個領域獲得的開始和結束時間

<input type="text" class="timepicker" name="travelstart" id="travelstart" placeholder="Travel Start" style="width:25%"> 
<input type="text" class="timepicker" name="travelfinish" placeholder="Travel Finish" style="width:25%" readonly/> 

需要驗證該結束時間的一些方法是晚於開始時間。 東西沿着線:

var ts = document.getElementById('travelstart') 
var fs = document.getElementById('travelfinish') 
if (ts.value => fs.value) { return false } 
+0

然後兩次轉換成時間戳,然後比較呢? – martin

+0

該代碼無法正常工作嗎?因爲你使用的是24小時的時間,所以他們應該比較好的字符串... –

回答

0

所有你需要做的是轉換的時候一個單元並進行比較。因爲它只是一個24小時timepicker,我們可以在這裏使用分鐘:

var ts = document.getElementById('travelstart').value; 
var fs = document.getElementById('travelfinish').value; 
var startTime, endTime, timeArr; 
// split the hours and minutes 
timeArr = ts.split(':'); 
// Hours is in timeArr[0]; minutes in timeArr[1]; 
startTime = (timeArr[0] * 60) + +timeArr[1]; 
// do the same for end time: 
timeArr = fs.split(':'); 
endTime = (timeArr[0] * 60) + +timeArr[1]; 
// Now you can compare them 
return startTime >= endTime; 
+0

工作正常,但是,需要parseInt ts和fs –

+0

是的;忘了那個,謝謝。更新代碼以將'timeArr [1]'強制轉換爲數字。 – jperezov

0

我假設你正在使用這個timepicker jQuery plugin

的一切,如果你第一次打電話只是document.getElementById('travelstart').value返回格式"04:00 AM"時間,這可能不是你想要什麼,所以更好的利用:

$('#options-change-event').timepicker().getTime() 

得到一個實際的JavaScript Date對象。你用什麼`.value`回報什麼timepicker

var tsDate = $('#options-change-event').timepicker().getTime(); 
var tsMinutes = 60 * tsDate.getHours() + tsDate.getMinutes(); 

// ... the same with the seconds timepicker 

return tsMinutes > tfMinutes;