我有一个UTC日期以毫秒为单位,我传递给Angular的日期过滤器的人格式。
{{someDate | date:'d MMMM yyyy'}}
真棒,除了someDate是在UTC和日期过滤器认为它在本地时间。
我怎么能告诉Angular someDate是UTC?
谢谢。
类似问题
here
原文链接:https://www.f2er.com/angularjs/146603.html我会重新发布我的回复,并提出合并:
输出UTC似乎是一些混乱的主题 – 人们似乎倾向于moment.js。
借用从这个answer,你可以做这样的事情(即使用一个转换函数创建日期与UTC构造函数)没有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>
这里是plunker玩它
还要注意,使用这种方法,如果你使用’Z’从Angular的日期过滤器,它似乎仍然打印您的本地时区偏移量。