【发布时间】:2017-02-08 16:41:20
【问题描述】:
我必须根据记录的用户时区将我的日期转换为不同的时区
我试过了
$scope.currentDate = Date.now();
$scope.tz = 'America/New_York';
鉴于我这样称呼{{currentDate | date:'h:mm a' : t}}
但它不起作用。,..我怎么能做到这一点?
【问题讨论】:
标签: angularjs date timezone converter
我必须根据记录的用户时区将我的日期转换为不同的时区
我试过了
$scope.currentDate = Date.now();
$scope.tz = 'America/New_York';
鉴于我这样称呼{{currentDate | date:'h:mm a' : t}}
但它不起作用。,..我怎么能做到这一点?
【问题讨论】:
标签: angularjs date timezone converter
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'}}
否则制作一个过滤器来格式化日期,它将使用时刻以任何格式和时区格式化,如下所示:
inputFormat = "YYYY-MM-DD'T'HH:mm:ssZ"
moment(input, inputFormat).format(outputFormat)
【讨论】: