我正在迭代一个包含日期的列表(jobs.submitted):
<div ng-controller="DashboardController as dashboard">
<div ng-repeat="job in dashboard.jobs | filter: {status: 'started'}" class="row">
<div class="col-xs-3">{{job.submitted}}</div>
</div>
现在我想计算持续时间:
(new Date(job.submitted)) - (new Date(job.completed))
如果我把它直接放到表达式中我会得到语法错误(我猜angularJS不理解Date对象)。
如果我将它放入一个函数,即控制器中的函数,该函数永远不会评估:
{{dashboard.getDuration(job)}}
是空白的。
解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
试试这个
$scope.getDays=function getDays(toDate, fromDate, isNegetiveAllowed) {
toDate=new Date(toDate);
fromDate=new Date(fromDate);
return Math.round((toDate - fromDate) / (1000 * 60 * 60 * 24));
};
HTML
<div ng-repeat="job in dashboard.jobs | filter: {status: 'started'}" class="row">
<div class="col-xs-3">{{ getDays(job.completed,job.submitted) }}</div>
</div>
答案 1 :(得分:0)
这应该在控制器中完成,而不是在视图中。 你可以这样试试:
在视图中:
{{getJobDiiff(作业)}}
在控制器中:
$scope.getJobDiiff= function(job){
//chage dates in timestamp
var timestamp1 = new Date(job.submitted).getTime();
var timestamp2 = new Date(job.completed)).getTime();
var diff = timestamp1 - timestamp2;
var newDate = new Date (diff);
return newDate;
}
答案 2 :(得分:0)
var date1 = new Date("7/11/2010");
var date2 = new Date("12/12/2010");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
alert(diffDays);