Как мне получить дату первого дня недели и дату последнего дня недели с помощью Moment.js?

Мне нужно получить дату с первого дня недели до даты последнего дня текущей недели, которую я основываю на текущем дне.

Я прочитал документацию https://momentjs.com/docs/ и обнаружил будний день ( ) , но мне нужно получить первый день недели и последний день недели на основе текущей даты, как мне это сделать с помощью Moment?

Мне это нужно, чтобы фильтровать данные Observable по периоду: месяц, неделя ...

var start_date = moment(this.start_date, 'DD/MM/YYYY').format('YYYY-MM-DD')
var final_date = moment(this.final_date, 'DD/MM/YYYY').format('YYYY-MM-DD')

this.transacoesList = this.transacoesList
  .filter((v) => {

    var release_date = moment(v.release_date, 'DD-MM-YYYY').format('YYYY-MM-DD');

    if (moment(release_date).isBetween(start_date, final_date, null, '[]')) {
      return true;
    }
  });
3
Luiz Ricardo Cardoso 13 Мар 2018 в 01:57

2 ответа

Лучший ответ

Ты на правильном пути. Функцию weekday можно использовать для получения понедельника и пятницы текущей недели.

var now = moment();
var monday = now.clone().weekday(1);
var friday = now.clone().weekday(5);
var isNowWeekday = now.isBetween(monday, friday, null, '[]');

console.log(`now: ${now}`);
console.log(`monday: ${monday}`);
console.log(`friday: ${friday}`);
console.log(`is now between monday and friday: ${isNowWeekday}`);

Прямая ссылка на документы Moment.js по функции weekday здесь: https: //momentjs.com/docs/#/get-set/weekday/

9
Mike Hill 12 Мар 2018 в 23:21

Функция дня недели Moment возвращает 0, если день является первым днем недели для вашего региона. Следовательно, если день недели для сегодняшней даты равен 0, вы уже находитесь в первом дне этой недели. Если это не 0, просто вычтите это количество дней (у Moment есть функции для добавления и вычитания дней из даты) из текущей даты, и тогда у вас будет первый день недели.

Как только у вас будет первый день недели, добавьте к нему 6 дней, и у вас будет последний день недели.

0
kshetline 12 Мар 2018 в 23:14