如果 'to date' 与 'from date' 不在同一月,则日期范围验证有效

date range validation is valid if 'to date' not in same month as 'from date'

我有搜索日期范围 'from date' & 'to date' 如果日期范围不在同一个月,我的验证函数使数据有效?例如,如果从日期“2015-06-02”到日期“2015-06-01”,范围无效?但如果我将日期设置为“2015-05-31”,它将是有效范围

var validateDateRange = function () {
    var fromDate = moment($scope.model.fromDateSearch, 'MM-DD-YYYY');
    var toDate = moment($scope.model.toDateSearch, 'MM-DD-YYYY');
    var a = (fromDate > toDate) ;
    return a;

};

你应该使用自Unix Epoch以来的毫秒数,这样更安全。

var validateDateRange = function () {
    var fromDate = moment($scope.model.fromDateSearch, 'MM-DD-YYYY').valueOf();
    var toDate = moment($scope.model.toDateSearch, 'MM-DD-YYYY').valueOf();
    var a = (fromDate < toDate) ;
    return a;
};

注意 'lower than' 符号。

您传递的日期格式有问题。因此,如果您只是删除格式并传入值,它也会起作用。

运行 并检查下面的代码片段是否正常工作

var validateDateRange = function (fromDate, toDate) {
    var fromDate = moment(fromDate);
    var toDate = moment(toDate);
    var a = (fromDate > toDate) ;
    return a;

};

var fromDate= new Date("2015-06-02");
var toDate = new Date("2015-06-01");
alert(validateDateRange(fromDate, toDate));

var fromDate= new Date("2015-06-02");
var toDate = new Date("2015-05-31");
alert(validateDateRange(fromDate, toDate));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.js"></script>