2016-06-30 7 views
0

私は作業中のApp内のいくつかの場所でMomentjsを使用していますが、うまくいきます。しかし、私はendOf('week')を使用しており、それは土曜日に発生しています。私が期待しているのは、日曜日です。Momentjsのロケール - 曜日の設定米国

私はそれに関する情報を見つけようとしていましたが、使用されているコードを変更することなくどこでもそれを回避する方法はどこにもありません。私の掘り出し物から、モーメントはロケールを自動的に適用します。また、ロケールファイルの1つを見ることで、今週のこの曜日(ダウ)がどこに設定されているかがわかります。

例:瞬間/ロケール/エンgb.js

week : { 
     dow : 1, // Monday is the first day of the week. 
     doy : 4 // The week that contains Jan 4th is the first week of the year. 
    } 

それでは、私が集まることは、私がGBにあった場合は、週の終わりには日曜日になります。しかし、私が明確にしていないのは、米国のデフォルトはどこですか?そこlocaleディレクトリにはエンUS.jsではありません、私が決定しようとしている何dow:0

をデフォルトのようです:

  1. 理由は何EN-USはありませんありますか?
  2. en-gb.jsをen-US.jsとしてコピーするのが最善の解決策ですか?私がそれを行い、それを私のアプリケーションに含めると、これは他のロケールの他の人々に影響を及ぼしますか?

私はmoment.min.jsで変わってしまい、ダウを0から1に変更してしまい、その結果、日曜日がアプリ全体を通じて週末になりました。しかし、それは私がしたいことではありません。

うまくいけば、これはちょうど私がどこかの答えを見逃していません。

ご提案は大歓迎です。

ありがとうございます。

アップデート1

使用:

  • momentjs
  • 2.9.0角度モーメント0.10.3
+0

2.9を使用する理由はありますか?私はそれのためのコードを投稿することができますが、2.12 +からの構文が理にかなっています。 –

答えて

2

瞬間に週システムがするのが最も簡単なものではありませんわかる。つまり、デフォルトの「en」は「en-us」と同じであると理解されています。曜日を日曜日に更新する場合は、ロケールのカスタマイズを使用できます。 updateLocale機能が導入されたときと同じように、バージョン2.12以上を使用していることを確認してください。その後、単に実行します。

moment.updateLocale('en', {week : { 
    dow : 1, // Monday is the first day of the week. 
    doy : 4 // The week that contains Jan 4th is the first week of the year. 
}}); 

これは、その結果:

moment().endOf('week').format() 
"2016-07-03T23:59:59-05:00" 

あなたが2.11に2.8を使用している場合は、構文は単純です:

moment.locale('en', {week : { 
    dow : 1, // Monday is the first day of the week. 
    doy : 4 // The week that contains Jan 4th is the first week of the year. 
}}); 
ので、それほど差はなかっ

が、ビットはあいまいです。

+0

ありがとうございます。それは動作します。他のユーザーのためにロケールをオーバーライドする予定ですか?または、これは 'en'ユーザーのためのダウを変更するだけですか? – Chris

+0

ちょうど変化しています –

+0

2.12に更新され、 'moment.updateLocale'が使用されています。ありがとう。 – Chris

関連する問題