2016-09-30 2 views
0

я должен преобразовать свою дату другой часовой пояс на основе вошедшего часовом поясе пользователяУгловые ЯШ: преобразовать дату в другой часовой пояс

Я попытался

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

В представлении я назвал как этот {{currentDate | date:'h:mm a' : t}}

Но это не работает., .. как я мог это достичь?

ответ

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>

+0

I 'm получение timezone как строка только не получает смещение – Trent

+0

@Trent обновлено. Проверить прямо сейчас – Sankar

0

Это довольно легко

В HTML шаблона Связывание

{{ date_expression | date : format : timezone}} 

В JavaScript

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

{{currentDate | date: 'h: mm a': 'America/New_York'}} Не работает. Показывает только местное время – Trent

0

Использование так:

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

в противном случае сделать фильтр на сегодняшний день формат, который будет использовать момент для форматирования в любом формате и часовой пояс следующим образом:

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

 Смежные вопросы

  • Нет связанных вопросов^_^