Angular js:将日期转换为另一个时区

时间:2016-09-30 07:17:24

标签: angularjs date timezone converter

我必须根据记录的用户时区将我的日期转换为不同的时区

我试过了

$scope.currentDate = Date.now();
$scope.tz = 'America/New_York';

在视图中,我这样称呼{{currentDate | date:'h:mm a' : t}}

但它没有用。,..我怎么能实现这个目标?

3 个答案:

答案 0 :(得分:0)

利用Moment timezone JS

var app = angular.module('app', []);

app.controller('mainCtrl', function($scope) {
  var now = moment(new Date());
  $scope.currentDate = now.tz('America/New_York').format('hh:mm a');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.4/moment-timezone-with-data-2010-2020.min.js"></script>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<div ng-app='app'>
  <div ng-controller='mainCtrl'>
    <h4>{{ currentDate }}
</h4>
  </div>
</div>

答案 1 :(得分:0)

很容易

在HTML模板绑定中

{{ date_expression | date : format : timezone}}

在JavaScript中

$filter('date')(date, format, timezone)

答案 2 :(得分:0)

像这样使用:

{{currentDate | date:'h:mm a' : '+500'}}

否则制作一个过滤器来格式化日期,该日期将使用时刻格式化为任何格式和时区,如下所示:

inputFormat = "YYYY-MM-DD'T'HH:mm:ssZ"
moment(input, inputFormat).format(outputFormat)