2013-12-11 21 views
7

Ho questa data: 1386800070703. Diciamo che è UTC.
Come posso dire angolare che fuso orario è e in quale fuso orario voglio che venga visualizzato?Come specificare il fuso orario fino alla data del filtro

Attualmente sto usando tihs che converte solo senza alcuna informazioni fuso orario:
{{1386800070703 | date:'d MMMM yyyy'}}

e vorrei essere in grado di mostrare un fuso orario alla destra della data.

risposta

1

Utilizzare l'elemento Z

'Z': 4 digit (+sign) representation of the timezone offset (-1200-+1200) 

{{1386800070703 | date:'d MMMM yyyy Z'}} 
+0

Hm, che stamperà solo l'offset del fuso orario della macchina. Quello di cui ho bisogno è che quella data sia coperta nel fuso orario della macchina. Probabilmente dovrò scrivere il mio filtro per quello, giusto? – Francisc

3

Ecco una direttiva che ho scritto che fa proprio questo:

angular.module('CommonDirectives', []).directive('adjustTimezone', ['$filter', function ($filter) { 
    return { 
    restrict: 'A', 
    scope: { 
     adjustTimezone: '@' 
    }, 
    link: function ($scope, element, attrs) { 
     var date = new Date(attrs.adjustTimezone); 

     date.setMinutes(date.getMinutes() - date.getTimezoneOffset()); 
     element.text($filter('date')(date, attrs.filter)); 
    } 
    } 
}]); 

Ecco come lo si utilizza:

<span data-adjust-timezone="{{date.MilitaryTime}}" data-filter="EEEE, MMMM d, y h:mm a"></span> 
7

Nel prossimo versione di AngularJS (1.3.0) è possibile specificare il fuso orario in questo modo:

{{someDate | date:'d MMMM yyyy Z' : 'UTC'}} 

Attualmente, supporta solo UTC, come si può vedere nella documentazione: https://code.angularjs.org/1.3.0-rc.2/docs/api/ng/filter/date

Si può giocare con qui: Plunker example

Avviso, il fuso orario verrà mostrato come locali in tempo anche se specificato diversamente.

+2

perché farlo e quindi supporta solo UTC? wat. – FlavorScape

+2

Poiché la versione '' '1.4.0-rc.0''' AngularJS supporta anche altri fusi orari. Ad esempio, per ottenere il tempo standard del Giappone è possibile utilizzare quanto segue: '' {{someDate | data: 'MMM d, y H: mm: ss Z': '+0900'}} '' ' – edufinn

+0

Purtroppo questo parametro del fuso orario aggiuntivo non è supportato in [Date pipe di Angular 2] (https://angular.io/docs /ts/latest/api/common/index/DatePipe-class.html). Fare qualcosa di simile a quanto suggerito in [la risposta accettata per questa domanda simile] (http://stackoverflow.com/a/21785593/1392763) funzionerà ancora in Angular 2. – munsellj

Problemi correlati