如何使用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;
}
});
答案 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天,你就会得到一周的最后一天。