使用AngularJS我想比较日期是否超过今天的3天:
控制器:
$scope.todayDate = new Date();
来自json对象的和dateHire
,如dateHire“:”2016-02-08T00:00:00“
html:
<tr ng-repeat ="emp in Employees">
<td>
<span class="label label-danger" ng-class="{'label-danger': (((todayDate | date:'d M') - (emp.dateHire | date: 'd M')) > 3)}"> {{emp.name}}</span>
</td>
</tr>
然而,它不起作用。我究竟做错了什么。
答案 0 :(得分:1)
创建过滤器:
move_uploaded_file($_FILES["Filedata"]["tmp_name"], $directory . $file);
然后在你的ng-class对象中使用它:
app.filter('unixDate',function(){
return function(date) {
return new Date(date).getTime();
}
});
答案 1 :(得分:1)
您不应该将JS逻辑添加到视图中。您正尝试将过滤器应用于您的日期:emp.dateHire | date: 'd M'
,这会生成一个字符串,然后您尝试减去两个字符串。您最终会执行'12 May' - '10 May'
之类的操作,其结果为NaN
。
您需要向接受员工对象的控制器或作用域添加一个函数,然后将employee.dateHire值解析为Date对象,最后返回将该日期与当前日期进行比较的结果。
如下所示:
this.hireDateGreaterThanDays = function(emp, days) {
var now = new Date();
var dateHire = /* create a new date from the emp.dateHire attribute */
/**
* Compare date values here. Can use a library like MomentJS or
* plain JS Date objects as pointed out in other answers and comments.
*/
return (now - dateHire) > 3;
};