如何与MomentJs获得一个月的第一个星期一



我正在使用MOMMJS和FULLCALENDAR。我想获得一个月的第一个星期一。我尝试了以下代码,但它不起作用。

let date = new Date(year, month, 1)
moment(date).isoWeekday(1)

我相信 @xenteros的答案在星期日开始几个月不起作用,因为星期一将是第9个。

这是一个简单的修复:

let date = moment().year(y).month(m).date(1).day(8);
if (date.date() > 7)
    date.day(-6);

以下代码解决了我的问题:

let date = moment().set('year', y).set('month', m).set('date', 1).isoWeekday(8)
if(date.date() > 7) { // 
    date = date.isoWeekday(-6)
}

这是获得第一个星期一

的步骤
  1. 创建一天(该特定月份的任何一天)

  2. 获得本月的开始,这将返回日期

  3. 第一天有两个案例,可能是星期一或不是星期一

  4. 我们在一个月的第一天增加了6天,如果是星期一,我们将获得周日(同一周),否则我们将在下周获得一个星期一的日期(发生在同月)

  5. 致电startOf('isoWeek')将返回该月的第一个星期一

     let date = new Date(year, month, 1);
     const firstMondayOfTheMonth = date
        .startOf('month')
        .add(6, 'day')
        .startOf('isoWeek');
    

使用力矩JS 。您可以在任何一年和月份作为参数传递。

import moment from 'moment';
const startOfMonth = moment().year(2021).month(0).startOf('month').isoWeekday(8);
console.log(startOfMonth.format('dddd DD-MM-YYYY')); // Monday 04-01-2021

月: 0-11。

相关内容

  • 没有找到相关文章

最新更新