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

Posted

技术标签:

【中文标题】验证结束日期是不是大于开始日期【英文标题】:validate end date equal to greater than start date验证结束日期是否大于开始日期 【发布时间】:2013-04-10 04:49:05 【问题描述】:

我想检查结束日期是否大于或等于开始日期,使用 jquery 验证。它正在验证结束日期大于开始日期,但不允许结束日期等于开始日期,

这是我的代码 -

    jQuery.validator.addMethod("greaterThan", 
function(value, element, params) 
    if (!/Invalid|NaN/.test(new Date(value))) 
        return new Date(value) > new Date($(params).val());
    
    return isNaN(value) && isNaN($(params).val()) 
        || (Number(value) > Number($(params).val())); 
,'Must be greater than 0.');

jQuery("#collect_and_delivery").validate( 
        errorElement:'div',               
        rules:                     
                from:
                        required:true
                     ,
                to:
                    required:true
                ,
                start_date:
                    required:true
                ,
                 end_date:
                    required:true,
                    greaterThan: "#start_date"              
                
        ,
        messages: 
               from:"Please enter collect address",
               to:"Please enter delivery address",
               start_date:"Please enter shipping collect date",
               end_date:
                
                    required:"Please enter shipping delivery date",
                    greaterThan:"Delivery date and Collect date should be proper"
               
                        
    ); 

【问题讨论】:

兄弟,在您的自定义验证器方法 greaterThan 中使用 is greater than or equal to (>=) 【参考方案1】:

你应该在你的自定义方法greaterThan中使用is greater than or equal to(>=)。

改变这一行:

return new Date(value) > new Date($(params).val());

收件人:

return new Date(value) >= new Date($(params).val());

享受...

【讨论】:

兄弟,它适用于我检查Demo Fiddle 是的,它正在工作,我的代码太乱了,我在另一个文件中进行了更改。对不起。谢谢。 兄弟,它工作不正常..它只检查一天..而不是年和月【参考方案2】:

如果你想使用简单的 javascript 来比较日期。这是一个;简单易行。

 function compareDate() 
    var str = document.getElementById("start_date").value;
    var end = document.getElementById("end_date").value;
    var year = str.substring(0,4);
    var month = str.substring(5,7);
    var date = str.substring(8,10);
    var endYear = end.substring(0,4);
    var endMonth = end.substring(5,7);
    var endDate = end.substring(8,10);
    var startDate = new Date(year, month-1, date);
    var endDate = new Date(endYear, endMonth-1, endDate);

    if (startDate > endDate) 
      alert('start date should be less than end date');
       return false;
     
    else  return true; 

【讨论】:

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

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

日期验证的 Grails 最小约束

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

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

为 2 Datepicker 开始日期和结束日期设置验证 javascript

laravel 5.1 中的日期验证