【发布时间】:2017-05-14 09:23:10
【问题描述】:
所以在我的数据库中,我有像2016-12-30 00:30:10 这样的时间戳……我通过$http 模块得到它。在我的角度代码中,我有这个:
angular
.module('sampleApp')
.controller('ReportCtrl', ReportCtrl)
.factory('Reports', Reports)
.filter('dateToISO', dateToISO);
function ReportCtrl($scope, Reports) {
$scope.returns = [];
$scope.loadReturns = function () {
Reports.getReturns().then(function (response) {
$scope.returns = response.data;
}, function (error) {
console.log(error);
})
}
}
function dateToISO() {
return function (input) {
input = new Date(input).toISOString();
return input;
};
}
在 html 中:
<tr ng-repeat="r in returns | orderBy:'-phdate'">
<td ng-bind="r.product_name"></td>
<td ng-bind="r.quantity"></td>
<td ng-bind="r.username"></td>
<td ng-bind="r.phdate | dateToISO | date:'medium'"></td>
</tr>
所以输出看起来像这样:
现在我想做的是只输出与当前日期相等的日期。例如,今天是 12/30/2016,我只想要包含该日期的数据。
我应该在服务器端进行还是可以在 Angular 中进行?任何帮助将不胜感激。
【问题讨论】:
-
你可以从两边做,但如果数据更多,那么从服务器端做以获得更好的性能。
-
在执行
new Date('2016-12-30 00:30:10')时,字符串将被视为本地字符串(如果解析正确,则可能不是),因此对于每个具有不同时区偏移量的主机来说,将代表不同的时间。跨度>
标签: javascript angularjs date angularjs-filter