Javascript jQuery验证使用时间选择器选择的开始时间和结束时间
我想验证使用12小时格式的时间选择器选择的开始时间和结束时间。结束时间应大于开始时间。我使用了Javascript jQuery验证使用时间选择器选择的开始时间和结束时间,javascript,jquery,jquery-ui,datepicker,Javascript,Jquery,Jquery Ui,Datepicker,我想验证使用12小时格式的时间选择器选择的开始时间和结束时间。结束时间应大于开始时间。我使用了if语句,但是当测试使用诸如上午8:00作为开始时间,下午1:00作为结束时间这样的值时,它不起作用。我能做些什么来解决这个问题。谁来帮我做这个。从昨天起我就一直在做这件事。我只想要时间,我不需要日期 $("#dateTimeAddButton").click(function () { var Date=$('#myDatePickerId').val() var st
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.');
}
});
首先转换为最低教派(此处为分钟)。然后比较一下
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;
}
首先转换为最低教派(此处为分钟)。然后比较一下
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;
}
请尝试下面的代码,以防您的时间长度超过6个字符,如上午10:00am而不是上午9:00am将在代码上方抛出错误 我在上面的代码中做了一些小改动,它对我来说很有魅力
$('btnSubmit')。在('click',函数(){
var startTime=$('#txtJobStartTime').val();
var endTime=$('#txtJobEndTime').val();
var st=从午夜开始的分钟数(开始时间);
var et=从午夜开始的最小值(结束时间);
如果(st>et){
警报(“结束时间始终大于开始时间”);
返回false;
}
功能minFromMidnight(tm){
var ampm=tm.substr(-2);
var-clk;
如果(tm.length请尝试下面的代码,如果您的时间长度超过6个字符,例如10:00am而不是9:00am,则会在代码上方抛出错误
我在上面的代码中做了一些小改动,它对我来说很有魅力
$('btnSubmit')。在('click',函数(){
var startTime=$('#txtJobStartTime').val();
var endTime=$('#txtJobEndTime').val();
var st=从午夜开始的分钟数(开始时间);
var et=从午夜开始的最小值(结束时间);
如果(st>et){
警报(“结束时间始终大于开始时间”);
返回false;
}
功能minFromMidnight(tm){
var ampm=tm.substr(-2);
var-clk;
如果(tm.length显示您的代码。您的if
语句在哪里?您可以使用24小时格式进行时间比较。这将解决您的比较问题。我不能使用24小时格式进行时间比较。我需要12小时。当我使用localeCompare时,我无法获取。有其他方法吗?显示您的代码。您的if
语句在哪里?您可以使用24小时格式时间。这将解决您的比较问题。我不能使用24小时格式的时间。我需要12小时。我在使用localeCompare时无法获取。还有其他方法吗?我在使用localeCompare时无法获取。还有其他方法吗?@Midhun我已更新为更高效的算法。它比localeCompare解决方案更好谢谢很多..我想知道代码背后的逻辑..我从来没有使用过localeCompare函数。你能简单介绍一下你给出的代码吗?很抱歉,如果我想问你更多。函数minFromMidnight
将时间字符串(如08:01 PM
转换为午夜后的分钟数。对于08:01 PM
1201
minutes.08=8*60,1=1*1,PM=12*60。因此是1201。然后你只需比较一下这个数字。kk.thnx很多..我想了解更多细节..无论如何,非常感谢你的帮助..我在使用localeCompare时没有得到任何帮助。还有其他方法吗?@Midhun我已经更新到一个更有效的算法。比n localeCompare解决方案非常感谢..我想知道代码背后的逻辑..我从未使用过localeCompare函数。你能简单介绍一下你给出的代码吗?对不起,如果我想问你更多。函数minFromMidnight
将时间字符串,如08:01 PM
转换为几分钟后r午夜。对于08:01 PM
它将是1201
分钟。08=8*60,1=1*1,PM=12*60。因此是1201。然后你只需比较这个数字。kk.thnx很多..我想了解更多细节..无论如何,非常感谢你的帮助。。