2

我想验证“开始”日期/时间对是否早于页面上的“结束”日期/时间对。我正在使用 jQueryUI 日期选择器和 HTML5 时间输入元素/小部件。

这个 jQuery:

    var begD = $.datepicker.parseDate('mm/dd/yy', $('#BeginDate').val());
    var endD = $.datepicker.parseDate('mm/dd/yy', $('#EndDate').val());
    if (begD > endD) {
            alert('Begin date must be before End date');
            $('#BeginDate').focus();
            return false;
    }    

(在此处的上下文中查看此脚本:http: //jsfiddle.net/clayshannon/QCrXG/9/

...用于比较日期选择器 val,但我也需要合并时间元素,以便“结束”时间元素中早于“开始”时间元素的时间(在同一日期)也将标记范围无效。

怎么做?

4

1 回答 1

2

这是一种方法。您需要测试日期是否相同,然后在其中将时间附加到您可以比较的新日期对象。(可能有一种更快的方法可以做到这一点,但这在测试中有效,这里:http: //jsfiddle.net/mori57/SEqVE/):

} else if(begD.toString() == endD.toString() ){
    var dteString = begD.getFullYear() + "/" + (begD.getMonth()+1) + "/" + begD.getDate();
    var begT = new Date(dteString + " " + $('#BeginTime').val());
    var endT = new Date(dteString + " " + $('#EndTime').val());

    if( begT > endT ){
        alert('Begin date must be before End date');
        $('#BeginTime').focus();
        return false;
    }
}
于 2013-08-12T17:17:23.117 回答