如何验证结束日期大于开始日期?

Posted

技术标签:

【中文标题】如何验证结束日期大于开始日期?【英文标题】:How do I validate that the end date is greater than start date? 【发布时间】:2011-12-05 06:25:09 【问题描述】:

我使用another answer 来解决我的问题。

jQuery.validator.addMethod("greaterThan", function(value, element, params) 
    return new Date(value) > new Date($(params).val());
, 'Must be greater than 0.');

但是,我的日期字段是一个文本框,格式类似于 dd-mm-yyyy。如何更改此代码以使验证生效?

【问题讨论】:

【参考方案1】:

您首先必须解析您的文本框值以从中获取日期。最好的方法是正则表达式:

你的验证器函数体应该是(内联 cmets 中的解释):

// date parsing regular expression
var rx = /([0-2]?\d|3[01])-(0?\d|1[0-2])-(\d4)/i;

// get textbox value
var val = $(params).val();

// default date
var date = new Date();

// parse date if entered correctly
if (rx.test(val))

    // get date parts
    var result = rx.exec(val);

    // generate date instance
    date = new Date(result[3], result[2]-1, result[1]);


// validate dates
return new Date(value) > date;

【讨论】:

【参考方案2】:
function ValidateEndDate() 
        var startDate = $("txtfromdate").val();
        var endDate = $("txttodate").val();
        if (startDate != '' && endDate !='') 
            if (Date.parse(startDate) > Date.parse(endDate)) 
                $("txttodate").val('');
                alert("Start date should not be greater than end date");
            
        
        return false;
    

【讨论】:

以上是关于如何验证结束日期大于开始日期?的主要内容,如果未能解决你的问题,请参考以下文章

验证结束日期是不是大于开始日期

日期验证的 Grails 最小约束

如何设置开始日期和结束日期之间的验证应在 3 年内选择

是的日期验证 - 开始日期不能与结束日期相同

开始日期结束日期验证 -Jquery/javascript - kendoUI

是的日期验证,开始日期之后的结束日期