是否有更好的方法可以忽略Angularjs中的时区:
“2014-01-18 14:30:00”而不是“2014-01-18 15:30:00”
function Scoper($scope) {
$scope.datum = "2014-01-18T14:30:00Z";
}
<div ng:app ng:controller="Scoper">
DateTime <br />
Angular: {{datum | date:'yyyy-MM-dd HH:mm:ss'}} <br />
</div>
答案 0 :(得分:18)
我正在试验同样的问题一段时间。日期过滤器有一个时区可能的参数,我认为应该是首选解决方案,而不是制作自己的过滤器并附加它。所以,这对我有用:
{{ someAcceptedDateFormat | date : 'shortTime' : 'UTC' }}
答案 1 :(得分:13)
我找到了这个答案:Why does angular date filter adding 2 to hour?
这是example:
app.filter('utc', function(){
return function(val){
var date = new Date(val);
return new Date(date.getUTCFullYear(),
date.getUTCMonth(),
date.getUTCDate(),
date.getUTCHours(),
date.getUTCMinutes(),
date.getUTCSeconds());
};
});
<span>{{ date | utc | date:'yyyy-MM-dd HH:mm:ss' }}</span>
答案 2 :(得分:2)
我有解决方案:
app.filter('timezone', function(){
return function (val, offset) {
if (val != null && val.length > 16) {
return val.substring(0, 16)
}
return val;
};
});
模板:
<span>{{ date | timezone | date:'yyyy-MM-dd HH:mm:ss' }}</span>