2015-10-21 4 views
6

Data ricevuta da server è in UTC fuso orario e ho bisogno di convertirlo in un particolare fuso orario, ad esempio: America/New_York .Following è il codice per lo stessoangolare Momento: Momento fuso orario non ci sono dati per l'America/New_York

<span class="bold" ng-bind="sess.date_time | amTimezone:'America/New_York' | amDateFormat:'h:mm a'"></span> 

ma a fare in modo da ottenere il seguente errore:

Moment Timezone has no data for America/New_York. See http://momentjs.com/timezone/docs/#/data-loading/. 

ma America/New_York è un fuso orario noto per moment ma ancora mi chiede di aggiungere il fuso orario.

risposta

29

è necessario caricare tutti i seguenti:

  • momento
  • momento-fuso orario
  • fuso orario dati per momento, fuso orario
  • angolare momento

Nella home page moment-timezone sono disponibili tre diverse distribuzioni o f momento-fuso orario.

  • moment-timezone.js è solo lo script. Non contiene dati relativi al fuso orario. Se si utilizza questa distribuzione, è previsto che i dati del proprio fuso orario verranno estratti da moment.tz.add o da moment.tz.load, come descritto nei documenti.

  • moment-timezone-with-data.js include tutti i dati di fuso orario conosciuti dallo tz database, per la versione indicata sul sito Web.

  • moment-timezone-with-data-2012-2022.js include gli stessi dati TZ, ma è troncati a soli anni 2012 attraverso il 2022. Si tratta di un file di dati molto più piccolo, ed è sufficiente per la maggior parte delle applicazioni del browser-side.

Ne esistono anche versioni miniate.

Quindi se si ottiene "Moment Timezone has no data for America/New_York", dal America/New_York è un identificatore di database TZ valido, quindi semplicemente non si sono caricati i dati per esso. Probabilmente stai usando moment-timezone.js senza aggiungere dati ad esso. Includere i dati del fuso orario con moment.tz.add o (più appropriatamente) passare a uno dei file che include già tutti i dati relativi al fuso orario.

Tuttavia, non fare entrambe le cose. I dati del fuso orario devono essere caricati una sola volta e gli script del fuso orario devono essere caricati una sola volta. Se si utilizza moment-timezone-with-data.js o moment-timezone-with-data-2012-2022.js, non si dovrebbe utilizzare moment-timezone.js, poiché tale script è già incluso.

+0

Nel backend (espresso), non ho richiesto 'js per i dati del fuso orario e funziona correttamente. Potrebbe essere per il lato client, abbiamo bisogno di ottenere questi dati in modo esplicito come hai detto, ti farà sapere se questo funziona. –

+2

Grande !! Ha funzionato. Stava ricevendo l'errore "Moment Timezone 0.4.0 è stato già caricato senza dati", quindi rileggi attentamente la tua risposta e le ultime due righe hanno risolto il mistero :) –

+1

Grazie per il tuo commento @AmanGupta. Non usare entrambi!script (fuso orario e dati), è la lezione appresa qui. – paqogomez