'Z'是什么增加了时区信息。至于输出UTC,这似乎是一些混乱的主题 - 人们似乎倾向于moment.js。
从这个answer借款,你可以做这样的事情,而不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="[email protected]*" 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发挥它
另请参阅this和this。
另外请注意,使用此方法,如果您使用Angular的日期过滤器中的'Z',它似乎仍会打印您当地的时区偏移量。
什么是你的代码?什么是输入,输出是什么?什么是期望的输出? –
对不起,我很着急。添加到问题@JBNizet。 – Squrler
如果您传递一个毫秒的原始整数数,则Date过滤器将根据当地时间仍然解释它。但是使用UTC构造函数和传递日期或先发制人的过滤器的时区的偏移量加上自己米利斯并通过它似乎工作所抵消。 – ossek