2015-10-21 2 views
6

日はUTCタイムゾーンであるアメリカのためのデータがないと私は例えば、特定のタイムゾーンに変換する必要があります:America/New_York .Followingは同じ回転モーメント:モーメントタイムゾーンはサーバから受信/ニューヨーク

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

しかし、そうすることで、私は次のエラーを取得する:

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

しかしAmerica/New_Yorkmomentに知られているタイムゾーンですが、まだタイムゾーンを追加するために私を求めています。

  • 瞬間
  • 瞬間、タイムゾーン
  • タイムゾーンデータ一瞬、タイムゾーンのための
  • 角度モーメント

:あなたは、次のすべてをロードする必要が

答えて

29

moment-timezoneのホームページには、3つの異なるディストリビューションo fモーメントタイムゾーン。

  • moment-timezone.jsだけスクリプトです。タイムゾーンデータは含まれていません。このディストリビューションを使用する場合は、ドキュメントに記載されているように、自分のタイムゾーンデータをmoment.tz.addまたはmoment.tz.loadのいずれかで取得することが期待されます。

  • moment-timezone-with-data.jsには、ウェブサイトに記載されているバージョンのtz databaseからのすべての既知のタイムゾーンデータが含まれています。

  • moment-timezone-with-data-2012-2022.js同じTZのデータが含まれていますが、これははるかに小さいデータファイルで、ブラウザ側の大多数のアプリケーションのために十分であるだけで年間2022を通じて2012年に切り捨てされます。

それぞれのバージョンが縮小されています。

"Moment Timezone has no data for America/New_York"を取得している場合は、America/New_Yorkが有効なTZデータベース識別子であるため、データをロードしていないだけです。あなたはおそらくmoment-timezone.jsをデータに追加せずに使用しています。 moment.tz.addのタイムゾーンデータを含めるか、(より適切には)すべてのタイムゾーンデータが既に含まれているファイルの1つに切り替えます。

ただし、両方を行わないでください。タイムゾーンデータは一度だけ読み込まれ、moment-timezoneスクリプトは一度だけ読み込まれます。 moment-timezone-with-data.jsまたはmoment-timezone-with-data-2012-2022.jsのいずれかを使用する場合は、moment-timezone.jsを使用しないでください。そのスクリプトは既に含まれています。

+0

バックエンド(express)では、私はタイムゾーンデータにjsを必要とせず、正常に動作しています。上記のように明示的にこのデータを取得する必要があるクライアント側の場合は、これが動作するかどうかをお知らせします。 –

+2

素晴らしい!出来た。 "モーメントタイムゾーン0.4.0が既にデータなしでロードされました"というエラーが表示された後、慎重に答えを読んでください。最後の2行はミステリーを解決しました:) –

+1

@AmanGuptaに感謝します。両方を使用しないでください!(タイムゾーンとデータ)スクリプトは、ここで学んだ教訓です。 – paqogomez

関連する問題