Javascript moment.js-验证日期>;今天和<;1年后的今天

Javascript moment.js-验证日期>;今天和<;1年后的今天,javascript,momentjs,Javascript,Momentjs,我正在使用验证测试表单上的日期字段 日期必须大于今天,但不大于从今天算起的365天 我已经尝试了很多方法来让代码正常工作,但是我看不到我的错误 该代码不允许用户输入介于今天和从今天算起1年之间的日期。有效日期会显示错误消息:“日期必须大于今天。” 我不确定问题是我使用了moment.js还是我的js代码 有人能看到我在这里犯的错误吗? 这是我的密码: var ensureLeadingEmploymentDateValid = function(dateFormat, inputSelector

我正在使用验证测试表单上的日期字段

日期必须大于今天,但不大于从今天算起的365天

我已经尝试了很多方法来让代码正常工作,但是我看不到我的错误

该代码不允许用户输入介于今天和从今天算起1年之间的日期。有效日期会显示错误消息:“日期必须大于今天。”

我不确定问题是我使用了moment.js还是我的js代码

有人能看到我在这里犯的错误吗?

这是我的密码:

var ensureLeadingEmploymentDateValid = function(dateFormat, inputSelector) {
    var today = new moment();
    var todayPlusOneYear = new moment().add(365, 'days');
    var dateInput = $(inputSelector);
    var dateValue = dateInput.val();
    var dateMoment = null;

    if (dateValue.length > 0) {
        var dateMoment = moment(dateValue, dateFormat);
        if (dateMoment < today) {
            var message = '{% trans "Date must be greater than today." %}';
            setParsleyErrorOnCondition(dateInput, dateMoment < today, message);
        } else if (dateMoment > todayPlusOneYear) {
            var message = '{% trans "Date must not be greater than 1 year from today." %}';
            setParsleyErrorOnCondition(dateInput, dateMoment > todayPlusOneYear, message);
        }
    }
    return dateMoment;
}
var ensureladingemploymentdatevalid=函数(日期格式,输入选择器){
var today=新时刻();
var todayPlusOneYear=new moment().add(365,‘天’);
变量dateInput=$(inputSelector);
var dateValue=dateInput.val();
var-dateMoment=null;
如果(dateValue.length>0){
var dateMoment=moment(dateValue,dateFormat);
如果(日期时间<今天){
var消息=“{%trans”日期必须大于今天。“%}”;
setParsleyErrorOnCondition(日期输入,日期时刻<今天,消息);
}else if(dateMoment>todayPlusOneYear){
var消息=“{%trans”日期不能大于从今天算起的1年。“%}”;
setParsleyErrorOnCondition(dateInput,dateMoment>todayPlusOneYear,message);
}
}
返回日期时刻;
}
您可以使用力矩和来比较力矩对象,而不是

在文档的部分中,有一个由moment提供的用于比较moment对象的方法列表。(例如,
之间,
之前或之后,
之前或之后等)

您的代码可能如下所示:

var ensureLeadingEmploymentDateValid = function(dateFormat, inputSelector) {
    var today = new moment();
    var todayPlusOneYear = new moment().add(365, 'days');
    var dateInput = $(inputSelector);
    var dateValue = dateInput.val();
    var dateMoment = null;

    if (dateValue.length > 0) {
        var dateMoment = moment(dateValue, dateFormat);
        if (dateMoment.isBefore(today)) {
            var message = '{% trans "Date must be greater than today." %}';
            setParsleyErrorOnCondition(dateInput, dateMoment < today, message);
        } else if (dateMoment.isAfter(todayPlusOneYear)) {
            var message = '{% trans "Date must not be greater than 1 year from today." %}';
            setParsleyErrorOnCondition(dateInput, dateMoment > todayPlusOneYear, message);
        }
    }
    return dateMoment;
}
var ensureladingemploymentdatevalid=函数(日期格式,输入选择器){
var today=新时刻();
var todayPlusOneYear=new moment().add(365,‘天’);
变量dateInput=$(inputSelector);
var dateValue=dateInput.val();
var-dateMoment=null;
如果(dateValue.length>0){
var dateMoment=moment(dateValue,dateFormat);
如果(dateMoment.isBefore(今天)){
var消息=“{%trans”日期必须大于今天。“%}”;
setParsleyErrorOnCondition(日期输入,日期时刻<今天,消息);
}否则,如果(dateMoment.isAfter(todayPlusOneYear)){
var消息=“{%trans”日期不能大于从今天算起的1年。“%}”;
setParsleyErrorOnCondition(dateInput,dateMoment>todayPlusOneYear,message);
}
}
返回日期时刻;
}
下面是一个包含一些测试输入的实时代码段:

var ensureladingemploymentdatevalid=函数(dateFormat,dateValue){
var today=新时刻();
var todayPlusOneYear=new moment().add(365,‘天’);
//变量dateInput=$(inputSelector);
//var dateValue=dateInput.val();
var-dateMoment=null;
如果(dateValue.length>0){
var dateMoment=moment(dateValue,dateFormat);
如果(dateMoment.isBefore(今天)){
var消息=“{%trans”日期必须大于今天。“%}”;
日志(日期值、消息);
//setParsleyErrorOnCondition(日期输入,日期时刻<今天,消息);
}否则,如果(dateMoment.isAfter(todayPlusOneYear)){
var消息=“{%trans”日期不能大于从今天算起的1年。“%}”;
日志(日期值、消息);
//setParsleyErrorOnCondition(dateInput,dateMoment>todayPlusOneYear,message);
}否则{
日志(日期值,“日期确定”);
}
}
返回日期时刻;
}
确保部署日期有效('MM/YYYY','05/2017');
确保部署日期有效('MM/YYYY','08/2017');
确保部署日期有效('MM/YYYY','07/2018')
您可以使用力矩和来比较力矩对象,而不是

在文档的部分中,有一个由moment提供的用于比较moment对象的方法列表。(例如,
之间,
之前或之后,
之前或之后等)

您的代码可能如下所示:

var ensureLeadingEmploymentDateValid = function(dateFormat, inputSelector) {
    var today = new moment();
    var todayPlusOneYear = new moment().add(365, 'days');
    var dateInput = $(inputSelector);
    var dateValue = dateInput.val();
    var dateMoment = null;

    if (dateValue.length > 0) {
        var dateMoment = moment(dateValue, dateFormat);
        if (dateMoment.isBefore(today)) {
            var message = '{% trans "Date must be greater than today." %}';
            setParsleyErrorOnCondition(dateInput, dateMoment < today, message);
        } else if (dateMoment.isAfter(todayPlusOneYear)) {
            var message = '{% trans "Date must not be greater than 1 year from today." %}';
            setParsleyErrorOnCondition(dateInput, dateMoment > todayPlusOneYear, message);
        }
    }
    return dateMoment;
}
var ensureladingemploymentdatevalid=函数(日期格式,输入选择器){
var today=新时刻();
var todayPlusOneYear=new moment().add(365,‘天’);
变量dateInput=$(inputSelector);
var dateValue=dateInput.val();
var-dateMoment=null;
如果(dateValue.length>0){
var dateMoment=moment(dateValue,dateFormat);
如果(dateMoment.isBefore(今天)){
var消息=“{%trans”日期必须大于今天。“%}”;
setParsleyErrorOnCondition(日期输入,日期时刻<今天,消息);
}否则,如果(dateMoment.isAfter(todayPlusOneYear)){
var消息=“{%trans”日期不能大于从今天算起的1年。“%}”;
setParsleyErrorOnCondition(dateInput,dateMoment>todayPlusOneYear,message);
}
}
返回日期时刻;
}
下面是一个包含一些测试输入的实时代码段:

var ensureladingemploymentdatevalid=函数(dateFormat,dateValue){
var today=新时刻();
var todayPlusOneYear=new moment().add(365,‘天’);
//变量dateInput=$(inputSelector);
//var dateValue=dateInput.val();
var-dateMoment=null;
如果(dateValue.length>0){
var dateMoment=moment(dateValue,dateFormat);
如果(dateMoment.isBefore(今天)){
var消息=“{%trans”日期必须大于今天。“%}”;
日志(日期值、消息);
//setParsleyErrorOnCondition(日期输入,日期时刻<今天,消息);
}否则,如果(dateMoment.isAfter(todayPlusOneYear)){
var消息=“{%trans”日期不能大于从今天算起的1年。“%}”;
日志(日期值、消息);
//setParsleyErrorOnCondition(日期输入