我正在从数据库中获取数据并显示它:
<ul>
<li ng-repeat="item in items>
<mydate>{{item.date}}</mydate>
</li>
</ul>
Unix 日期在哪里{{item.date}}
,例如 1374843600。如何使用 AngularJS 指令设置日期格式?可能吗?
当我尝试这样做时,我得到了标签 mydate 的值-{{item.date}}
我正在从数据库中获取数据并显示它:
<ul>
<li ng-repeat="item in items>
<mydate>{{item.date}}</mydate>
</li>
</ul>
Unix 日期在哪里{{item.date}}
,例如 1374843600。如何使用 AngularJS 指令设置日期格式?可能吗?
当我尝试这样做时,我得到了标签 mydate 的值-{{item.date}}
我遇到了将 unix 时间格式化为从纪元开始的秒数或JavaScript 中使用的毫秒数的问题。所以严格来说,AngularJS 不会将 Unix 时间戳转换为日期,而是一个以毫秒为单位的数字,它大 1000 倍,所以首先你必须将输入的数字乘以 1000,如下所示:
<mydate>{{item.date * 1000 | date:'yyyy-MM-dd HH:mm:ss Z'}}</mydate>
否则你的日期将是错误的。
如果您有 Unix 时间戳,则可能必须将时间戳乘以 1000,因为 Unix 时间戳以秒为单位,而 AngularJs 日期过滤器需要毫秒。
vm.milliseconds = Date('1441981121' * 1000);
然后使用 $filter() 函数
var date = $filter('date')(vm.milliseconds, 'd MMMM yyyy');
或者你可以在 ng-bind 中使用
<span ng-bind="myController.milliseconds | date : 'd MMMM yyyy'"></span>
您应该使用 angular: 这里已经提供的日期过滤器
yourapp.filter('timestampToDate', function () {
return function (timestamp) {
var date = new Date(timestamp * 1000);
var dateObject = date.getFullYear() +'/'+ ('0' + (date.getMonth() + 1)).slice(-2) +'/'+ ('0' + date.getDate()).slice(-2);
return dateObject;
};
});
用法:
{{timestamp | timestampToDate}}