日期比较不能在角度js中工作

时间:2016-05-04 07:56:32

标签: angularjs

任何人都可以告诉我为什么我的约会不起作用。 基本上当我尝试比较日期然后是在angularJs

中工作
  var dateObj1 = $filter("date")(Date.now(), 'dd-MMM-yyyy'); // output is "04-May-2016"
    var dateObj2 = $scope.employee.Tue; // output is "03-May-2016"
    if (dateObj1 < dateObj2) {         
        return true
    } else {
        return false;
    }

以上是有效的,但如果我使用日期为&#34; 2016年4月26日&#34;以下情况不起作用我得到回报

 var dateObj1 = $filter("date")(Date.now(), 'dd-MMM-yyyy'); // output is "04-May-2016"
    var dateObj2 = $scope.employee.Tue; // output is "26-Apr-2016"
    if (dateObj1 < dateObj2) {         
        return true
    } else {
        return false;
    }

2 个答案:

答案 0 :(得分:2)

根据the date filter的文档,此过滤器

  

根据请求的格式将日期格式化为字符串。

因此,在将dateObj1与dateObj2进行比较时,您使用的是字符串比较,即字典顺序。

您必须将字符串解析为日期(使用Date.parse)以获取所需结果

答案 1 :(得分:1)

签出这个,Date.parse是完成这项任务所必需的

var jimApp = angular.module("mainApp",  []);

jimApp.controller('mainCtrl', function($scope, $filter){
  var dateObj1 = $filter("date")(Date.now(), 'dd-MMM-yyyy'); // output is "04-May-2016"
  var dateObj2 = Date.parse("26-Apr-2016");
  if (Date.parse(dateObj1) < dateObj2) {
    alert(true);
    return true
  }
  else {
    alert(false);
    return false;
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<div ng-app="mainApp" ng-controller="mainCtrl">
</div>