我正在使用日期过滤器以某种格式呈现Unix时间戳。我注意到过滤器将本地时区添加到输出中。
有什么方法可以简单地输出确切的时间戳,而无需添加任何时区信息?
输入:
talk.content.date_and_time = 1400167800
(是世界标准时间下午05/15/14 @ 3:30:00)
码:
{{talk.content.date_and_time*1000 | date:'dd-M-yyyy H:mm Z'}}
输出:
15-5-2014 17:30 +0200
我如何使输出从15:30而不是17:30?
“ Z”是添加时区信息的内容。至于输出UTC,这似乎是一些混乱的主题-人们似乎倾向于使用moment.js。
从此答案中]借用,您可以在没有moment.js的情况下执行以下操作:
控制者
var app1 = angular.module('app1',[]); app1.controller('ctrl',['$scope',function($scope){ var toUTCDate = function(date){ var _utc = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()); return _utc; }; var millisToUTCDate = function(millis){ return toUTCDate(new Date(millis)); }; $scope.toUTCDate = toUTCDate; $scope.millisToUTCDate = millisToUTCDate; }]);
模板
<html ng-app="app1"> <head> <script data-require="angular.js@*" data-semver="1.2.12" src="http://code.angularjs.org/1.2.12/angular.js"></script> <link rel="stylesheet" href="style.css" /> <script src="script.js"></script> </head> <body> <div ng-controller="ctrl"> <div> utc {{millisToUTCDate(1400167800) | date:'dd-M-yyyy H:mm'}} </div> <div> local {{1400167800 | date:'dd-M-yyyy H:mm'}} </div> </div> </body> </html>
这是一个小矮人玩
还要注意,使用此方法时,如果您使用Angular的日期过滤器中的“Z”,似乎它仍会打印您的本地时区偏移量。