我想验证使用12小时格式的 timepicker 选择的开始时间和结束时间。结束时间应大于开始时间。我使用了if
语句,但是当测试使用诸如上午8:00作为开始时间和下午1:00作为结束时间的值时,它不起作用。我该怎么做才能解决这个问题。有人请帮帮我。我从昨天开始就坚持这个。我只想时间,我不需要约会。
$("#dateTimeAddButton").click(function ()
{
var Date=$('#myDatePickerId').val()
var startTime = $('#i').val();
var endTime = $('#i1').val();
if (startTime > endTime)
{
alert('End time always greater then start time.');
}
});
答案 0 :(得分:3)
首先转换为最低教派(此处为分钟)。然后比较一下。
st = minFromMidnight(startTime);
et = minFromMidnight(endTime);
if(st>et){
alert("End time must be greater than start time");
}
function minFromMidnight(tm){
var ampm= tm.substr(-2)
var clk = tm.substr(0, 5);
var m = parseInt(clk.match(/\d+$/)[0], 10);
var h = parseInt(clk.match(/^\d+/)[0], 10);
h += (ampm.match(/pm/i))? 12: 0;
return h*60+m;
}
答案 1 :(得分:0)
请尝试下面的代码,以防你的时间长度超过6个字符,如上午10:00而不是上午9:00将错误抛出代码。
我在上面的代码中做了一些小改动,它对我来说就像魅力一样。
$('#btnSubmit').on('click', function () {
var startTime = $('#txtJobStartTime').val();
var endTime = $('#txtJobEndTime').val();
var st = minFromMidnight(startTime);
var et = minFromMidnight(endTime);
if (st > et) {
alert('End time always greater then start time.');
return false;
}
function minFromMidnight(tm) {
var ampm = tm.substr(-2);
var clk;
if (tm.length <= 6) {
clk = tm.substr(0, 4);
} else {
clk = tm.substr(0, 5);
}
var m = parseInt(clk.match(/\d+$/)[0], 10);
var h = parseInt(clk.match(/^\d+/)[0], 10);
h += (ampm.match(/pm/i)) ? 12 : 0;
return h * 60 + m;
}
});
&#13;