Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery验证使用时间选择器选择的开始时间和结束时间_Javascript_Jquery_Jquery Ui_Datepicker - Fatal编程技术网

Javascript jQuery验证使用时间选择器选择的开始时间和结束时间

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

我想验证使用12小时格式的时间选择器选择的开始时间和结束时间。结束时间应大于开始时间。我使用了
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很多..我想了解更多细节..无论如何,非常感谢你的帮助。。