我必须根据登录用户的时区将日期转换为不同的时区
我试过了
$scope.currentDate = Date.now();
$scope.tz = 'America/New_York';
鉴于此,我已经这样称呼了{{currentDate | date:'h:mm a' : t}}
但是它不工作,…我怎样才能做到这一点呢?
利用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>
这很简单
HTML模板绑定
{{ date_expression | date : format : timezone}}
在JavaScript $filter('date')(date, format, timezone)
像这样使用:
{{currentDate | date:'h:mm a' : '+500'}}
否则,创建一个过滤器来格式化日期,它将使用moment来格式化任何格式和时区,如下所示:
inputFormat = "YYYY-MM-DD'T'HH:mm:ssZ"
moment(input, inputFormat).format(outputFormat)