我正在尝试格式化MM dd,yyyy格式的API结果集中返回的日期,但由于某种原因它无效。下面是我正在使用的代码,有人可以告诉我我在这里缺少什么/做错了吗?以及如何实现上述所需格式
<div>
<div>
<p>Date Added:</p>
{{memberData.DateJoined | date: 'MM dd, YYYY'}}
</div>
</div>
也尝试使用
<div>
<div>
<p>Date Added:</p>
{{memberData.DateJoined | date: 'MM dd, yyyy'}}
</div>
</div>
API返回的日期格式为:
DatePosted: "2014-05-15 00:00:00"
不工作定义: 日期显示为2014-05-15 00:00:00,同时应显示为2014年5月15日或2014年5月15日
答案 0 :(得分:4)
也许它只是一个错字,但YYYY
应该是小写的:
{{memberData.DateJoined | date: 'MM dd, yyyy'}}
编辑:您的源格式2014-05-15 00:00:00
不是Angular的有效来源,因此您需要先在控制器中将其转换为Date
对象:
$scope.DateJoined = new Date('2014-05-15 00:00:00');
然后你可以使用:
{{ DateJoined | date: 'MM dd, yyyy'}}
请参阅JSFiddle上的示例。
答案 1 :(得分:1)
在角度控制器中创建一个新函数来修复返回的日期:
myApp.controller('myController', function($scope){
$scope.fixDate = function(date){
return new Date(date);
};
..... rest of your controller goes here.
});
在HTML中:
{{fixDate(DatePosted) | date: "MM dd, yyyy"}}
如果从数据库返回日期数组(例如“orders_date”),也可以使用此函数,它可以与ng-repeat
指令一起使用
答案 2 :(得分:0)
尝试将日期字符串放入Date
对象:
DatePosted = new Date(DatePosted)