如何通过AngularJS日期过滤器添加天数?
我有以下代码:如何通过AngularJS日期过滤器添加天数?,angularjs,date,Angularjs,Date,我有以下代码: <body ng-app="my-app" ng-controller="my-controller"> <h1>Empty Angular App</h1> <span>{{"2015-07-08T15:10:10.530Z" | date:'medium'}}</span><br> <span>Expected: Aug 23, 2015 10:10:10 PM</span&
<body ng-app="my-app" ng-controller="my-controller">
<h1>Empty Angular App</h1>
<span>{{"2015-07-08T15:10:10.530Z" | date:'medium'}}</span><br>
<span>Expected: Aug 23, 2015 10:10:10 PM</span>
</body>
空角度应用程序
{{“2015-07-08T15:10:10.530Z”|日期:'medium'}}
预计时间:2015年8月23日晚上10:10:10
我想在“2015-07-08T15:10:10.530Z”的基础上再加上46天。
预期结果为:2015年8月23日晚上10:10:10
感谢您的帮助正如您所说,使用javascript是更好的选择
var app = angular.module('my-app', []);
app.controller("my-controller", function($scope) {
$scope.name = "world";
$scope.mydate = new Date("2015-07-08T15:10:10.530Z");
var numberOfDaysToAdd = 46;
$scope.newdate = $scope.mydate.setDate($scope.mydate.getDate() + numberOfDaysToAdd);
});
您可以创建一个自定义过滤器,将日期从ISO8601格式转换为X天:
myApp.filter('kDateAddFromDateISO8601', [function() {
return function(isoDateString, days) {
var parts;
var isoTime;
var date;
isoDateString = isoDateString || "";
days = days || 0;
parts = isoDateString.match(/\d+/g);
isoTime = Date.UTC(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]);
date = new Date(isoTime);
if (days) {
date.setDate(date.getDate() + days);
}
return date;
};
}]);
然后您可以使用过滤器:
<div>{{"2015-07-08T15:10:10.530Z" | kDateAddFromDateISO8601 : 46 | date:'medium'}}</div>
{“2015-07-08T15:10:10.530Z”| kDateAddFromDateISO8601:46 |日期:'medium'}
输出:
2015年8月23日下午12:10:10
你说的“增加天数”是什么意思?这个问题不是很清楚,只是编辑一下描述。在“2015-07-08T15:10:10.530Z”中增加46天。ThanksHow你知道你想增加多少天吗?它将始终是46,如您的示例中所示,还是另一条数据?为什么你觉得过滤器是最好的方法呢?不,我不这么认为,我觉得javascript在这种情况下更合适。这正是我想要的,但是对于Angular 8。非常感谢你!