【问题标题】:date range validation is valid if 'to date' not in same month as 'from date'如果 'to date' 与 'from date' 不在同一个月,则日期范围验证有效
【发布时间】:2015-06-11 14:45:57
【问题描述】:

如果日期范围不在同一个月,我有搜索日期范围“从日期”和“到日期”我的验证功能使数据有效?例如,如果从日期“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;

};

【问题讨论】:

  • 所以如果你的起始日期大于结束日期它返回 true??
  • 我会简单地比较日期的 JavaScript getTime() 值,确保 to_date 大于 from_date。

标签: javascript angularjs date momentjs


【解决方案1】:

您传递的日期格式存在一些问题。因此,如果您只是删除格式并传入值,它也可以工作。

运行并检查下面的代码 sn-p 是否正常

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>

【讨论】:

    【解决方案2】:

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

    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;
    };
    

    注意“低于”符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      • 2021-09-07
      • 2021-05-21
      相关资源
      最近更新 更多