忽略时区Angularjs

sam*_*bel 7 angularjs angularjs-filter

有没有更好的方法来忽略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>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/samibel/2rMXJ/

Dan*_*elM 18

我正在试验同样的问题一段时间.日期过滤器有一个时区可能的参数,我认为应该是首选解决方案,而不是制作自己的过滤器并附加它.所以,这对我有用:

{{ someAcceptedDateFormat | date : 'shortTime' : 'UTC' }}
Run Code Online (Sandbox Code Playgroud)


Ila*_*mer 13

我找到了这个答案:为什么角度数据过滤器会增加2到1小时?

这是一个例子:

管道另一个过滤器:

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());
  };    

});
Run Code Online (Sandbox Code Playgroud)

在您的模板中:

<span>{{ date | utc | date:'yyyy-MM-dd HH:mm:ss' }}</span>
Run Code Online (Sandbox Code Playgroud)

  • 由于版本```1.3.0``` AngularJS支持```UTC```时区作为日期的额外过滤参数.从版本```1.4.0-rc.0```开始,它也支持其他时区.因此,对于较新的AngularJS版本,首选解决方案将是@DanielM建议的解决方案 (2认同)