私は初めてMoment.jsを使用しています。週の最初の日付を取得しようとしましたが、ヨーロッパでは通常月曜日です。何をするにしても、週の最初の日の結果として日曜日になります。
さまざまな言語(ローカルまたはグローバル)を設定しようとしましたが、役に立ちませんでした。 moment.js github page のlangs.min.jsファイルを使用します。 "en-gb"および "fr" の言語ファイルには、次のコード行があります。
_dow : 1, // Monday is the first day of the week.
_
それで、私が週の最初の日を尋ねるとき、私は月曜日の日付を得るでしょう?日曜日を出力として取得し続けます。
_// Create moment object
var localLang = moment();
// Set language to french
localLang.lang('fr');
// Test language
localLang.lang(); // Output: fr
// Retrieve first day of the week and format it
var dow = localLang.startOf('week').format('dddd DD-MM-YYYY'); // Output: dimanche 14-04-2013
_
Dimancheは日曜日はフランス語です。ご覧のとおり、moment.jsは言語ファイルを正常に使用できますが、曜日の構成は使用しません。
テストするmoment.jsとlangs.jsを使用したJSfiddle: JSFiddle
編集:day(1)
の代わりにstartOf('week')
を使用すると、日曜日の代わりに月曜日の日付を取得できます。しかし、day(0)
を使用すると、結果として日曜日になります。言語ファイルで構成されているように、月曜日が週の最初の日ではないのはなぜですか。
最近この質問に出くわした人のために、今ではロケール固有の設定を設定するためのlang
メソッドをサポートしています。
最初の週を月曜日に設定:
moment.lang('zh-cn', {
week : {
dow : 1 // Monday is the first day of the week
}
});
var date = moment().weekday(0); // date now is the first day of the week, (i.e., Monday)
ロケール対応の平日を追加するよう取り組んでいますが、まだ完了していません。
https://github.com/timrwood/moment/issues/613#issuecomment-13786429