나는 표 형식으로 주를 인쇄하는 달력을 만들고 있습니다. 한 가지 요구 사항은 일부 사용자 옵션에 따라 월요일이나 일요일에 주를 시작할 수 있다는 것입니다. 순간의 isoWeekday 방법을 사용하는 데 어려움을 겪고 있습니다.
// 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);
}
편집 나는 isoWeekday
실제로 무엇 을하고 있는지 오해했다 . 나는 그것이 "어떤 요일이주의 첫날인지"변수 (존재하지 않음)를 설정했다고 생각했다. 실제로하는 일은 단순히 요일을 변경하는 것입니다.,처럼 moment.weekday()
0-6 대신 1-7 범위를 사용합니다.
startOf('week')
일요일이 분명히 귀하의 경우 주 시작을 나타내는 현재 로케일에 따라 다릅니다.startOf('iweek')
월요일에 ISO가 시작됩니다. 하지만 당신이 맞아요, 나는 ... 공식 사이트에있는 모든 문서를 찾을 수 없습니다