2016-09-12 18 views
4

momentjを正しくインポートしました。それはうまくいきますが、私が瞬間タイムゾーンをインポートしようとすると、それを動作させることができません。私はどの機能にもアクセスできません。私は、ファイルにそれらをロードしようとしているところAurelia/Typescriptを使用してモーメントタイムゾーンをインポートする方法

{ 
     "name": "moment", 
     "path": "../node_modules/moment", 
     "main": "moment", 
     "exports": "moment" 
}, 
{ 
     "name": "moment-timezone", 
     "path": "../node_modules/moment-timezone", 
     "main": "moment-timezone", 
     "deps": [ "moment" ], 
     "exports": "tz" 
} 

を、ここです::

は、ここで私はNPMからそれらをロードしています私のaurelia.jsonファイルです

import { autoinject } from "aurelia-framework"; 
import * as moment from "moment"; 
import * as tz from "moment-timezone"; 

@autoinject 
export class GlobalUtil { 

} 

です。このそれらをロードする正しい方法は?残念ながら私にとってはうまくいきません。

タイムゾーンを指定しようとすると、「モーメントタイムゾーンにAmerica/New_Yorkのデータがありません」というメッセージが表示されます。それから、正しい時刻ではないconsole.logs(7am)。

+0

私はあなたが逆転していると思います。瞬時タイムゾーンのpjsonに基づいて、あなたは瞬間タイムゾーンの瞬間を持つべきだと思います。 –

+0

@AshleyGrant今質問を編集しました。良いキャッチ。私たちはもっと近いですが、まだそこにはありません。私のnode_modulesファイルには、moment-timezoneフォルダにdata/packed/latest.jsonファイルがありますが、それらをロードする方法がわかりません。 – James

+0

JSPMまたはWebpackを使用していますか? –

答えて

13

多分私はこれで少し助けることができます。適切な指示をするために、Aurelia CLIアプリケーションにモーメント/瞬時時間ゾーンを追加するという一連の手順を段階的に追加します。

moment.js

  • 瞬間、タイムゾーンをインストール

    • npm install --save moment
    • typings install dt~moment --global --save

    をインストールします。 0

  • typings install dt~moment-timezone --global --save

注:私はあなたが活字体を使用したいと仮定しています。そうでない場合は、上記のインストール手順の2番目の手順をスキップしてください。

次に、両方のaurelia.jsonの「依存関係」セクションで構成します。

{ 
    "name": "moment", 
    "path": "../node_modules/moment", 
    "main": "moment" 
}, 
{ 
    "name": "moment-timezone", 
    "path": "../node_modules/moment-timezone", 
    "main": "moment-timezone", 
    "deps": ["moment"] 
} 

最後に、のは実際にこれを使用する方法についての簡単な例でこれをラップしてみましょう:

import * as moment from 'moment'; 
import 'moment-timezone'; 

export class App { 
    message: string; 

    constructor() { 
    // basic example of using moment().tz 
    this.message = moment.tz("2014-06-01 12:00", "Europe/Amsterdam").format(); 
    } 

} 

それはそうでしょう!これまでのところ、少なくとも構成部分については、とても良いものでした。しかし、あなたの質問が既に示しているように、次の傾向にエラーが表示されることがあります:

モーメントタイムゾーンにはヨーロッパ/アムステルダムのデータがありません。 http://momentjs.com/timezone/docs/#/data-loading/

これは、デフォルトでは、moment-timezoneにその特定のタイムゾーンについての知識がないことを意味します。エラーメッセージのリンクには、あなた自身で追加する必要があります。たとえば、次のようになります。

moment.tz.add([ 
    'America/Los_Angeles|PST PDT|80 70|0101|1Lzm0 1zb0 Op0', 
    'Europe/Amsterdam|EST EDT|50 40|0101|1Lz50 1zb0 Op0' 
]); 

この配列に必要な時間を追加します。または、momentjsウェブサイトから事前に定義されたバンドルをダウンロード/使用してください(上記のリンクを参照)。

希望すると便利です。

+0

魅力的なように働いた!ありがとうございました – James

+2

今、NPMパッケージにダウンロード済みのデータがあらかじめ定義されています。個別にすべてを追加する必要がないように、それを瞬時タイムゾーンでインポートするにはどうすればいいですか? – James

関連する問題