isoWeekday() で週を月曜日から始める 質問する

isoWeekday() で週を月曜日から始める 質問する

私は表形式で週を印刷するカレンダーを作成しています。1つの要件は、ユーザーのオプションに応じて、週を月曜日または日曜日に開始できることです。モーメントの使用に苦労しています。iso曜日方法。

// Start of some date range. Can be any day of the week.
var startOfPeriod = moment("2013-06-23T00:00:00"),

    // We begin on the start of the first week.
    // Mon Tues Wed Thur Fri Sat Sun
    // 20  21   22  23   24  25  26
    begin = moment(startOfPeriod).isoWeekday(1); // will pull from user setting

console.log(begin.isoWeekday()); // 1 - all good

// Let's get the beginning of this first week, respecting the isoWeekday
begin.startOf('week');

console.log(begin.isoWeekday()); // 7 - what happened ???

// Get column headers
for (var i=0; i<7; i++) {
    console.log(begin.format('ddd')); // I want Monday first!
    begin.add('d', 1);
}

jsFiddle

編集実際に何をしているのか誤解していましたisoWeekday。これは「週の最初の曜日はどの曜日か」という変数を設定するものだと思っていました (これは存在しません)。実際には、 と同様に曜日を変更するだけですが、moment.weekday()0 ~ 6 ではなく 1 ~ 7 の範囲を使用します。

ベストアンサー1

begin.startOf('isoWeek');を に置き換えるだけですbegin.startOf('week');

おすすめ記事