如何使用Moment.js获得一周中的第一天和最后一天?

Lui*_*oso 1 momentjs typescript angular

如何通过Moment.js获取一周中第一天的日期和一周中最后一天的日期?

我需要获取从当天的第一天到当前一周的最后一天的日期。

我阅读了文档https://momentjs.com/docs/,发现了weekday()函数,但是我需要根据当前日期获取一周的第一天和一周的最后一天,我该如何使用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;
    }
  });
Run Code Online (Sandbox Code Playgroud)

APu*_*APu 17

获取本周的第一天和最后一天非常简单,如下所示:

let currentDate = moment();
let weekStart = currentDate.clone().startOf('week');
let weekEnd = currentDate.clone().endOf('week');
Run Code Online (Sandbox Code Playgroud)

然后就可以格式化了

let formatted = weekEnd.format('YYYY-MM-DD');
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我推荐Luxon而不是moment 的原因有很多,其中最大的原因之一是不变性


Mik*_*ill 6

您走在正确的轨道上。该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}`);
Run Code Online (Sandbox Code Playgroud)

weekday此处直接链接到该函数上的Moment.js文档:https : //momentjs.com/docs/#/get-set/weekday/