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

时间:2018-03-12 22:57:08

标签: angular typescript momentjs

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

我需要知道从一周的第一天到当前一周的最后一天的日期,我的日期是基于当天。

我阅读了文档https://momentjs.com/docs/并找到了工作日()功能,但我需要根据当前的一周获得一周的第一天和一周的最后一天日期,我该如何使用Moment做到这一点?

我需要根据句点过滤Observable的数据:Month,Week ...

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 个答案:

答案 0 :(得分:5)

你走在正确的轨道上。 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}`);

点击此处weekday功能的Moment.js文档的直接链接:https://momentjs.com/docs/#/get-set/weekday/

答案 1 :(得分:1)

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

let currentDate = moment();
let weekStart = currentDate.clone().startOf('week');
let weekEnd = currentDate.clone().endOf('week');

然后就可以格式化了

let formatted = weekEnd.format('YYYY-MM-DD');

答案 2 :(得分:0)

当一天是您的语言环境的一周的第一天时,Moment的工作日函数返回0。因此,如果今天的工作日为0,那么您已经在本周的第一天了。如果它不是0,只需从当前日期减去那么多天(Moment具有添加和减去日期的天数的功能),然后你将拥有一周的第一天。

一旦你有了一周的第一天,加上6天,你就会得到一周的最后一天。

相关问题