Ответ 1
Я нашел ответ (задокументирован), но есть isoWeek
, который начнет неделю в понедельник вместо воскресенья.
Начальная неделя в воскресенье:
moment().startOf('week');
Начало недели в понедельник:
moment().startOf('isoWeek');
Мне нужно работать с некоторой логикой, для которой неделя начинается в понедельник (а не в воскресенье).
Существует функция начала недели, которую я могу использовать:
moment().tz('America/Los_Angeles').startOf('week').add(1, 'day')
Однако, если это воскресенье, мне нужно использовать дату последней недели и добавить 1, чтобы получить понедельник.
Я надеюсь, что будет проще получить "последний понедельник" независимо от того, какая дата.
Я нашел ответ (задокументирован), но есть isoWeek
, который начнет неделю в понедельник вместо воскресенья.
Начальная неделя в воскресенье:
moment().startOf('week');
Начало недели в понедельник:
moment().startOf('isoWeek');
Не знаю о moment.js, но в простом javascript вы можете получить предыдущий понедельник, получив номер дня, установив его на 7, если это воскресенье, а затем вычтите день число минус один с даты. Если день - понедельник, он возвращает ту же дату.
например.
var d = new Date();
d.setDate(d.getDate() + 1 - (d.getDay() || 7));
document.write(d)
Чтобы найти последний понедельник, просто используйте
moment().isoWeekday(-6); // ISO day of the week with 1 being Monday and 7 being Sunday.
Или Локальная Aware версия
moment().weekday(-7); // when Monday is the first day of the week
// when Monday is the first day of the week
moment().weekday(-7); // last Monday
Обратитесь к официальным документам здесь