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



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

我试过了

$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)

相关内容

  • 没有找到相关文章

最新更新