【问题标题】:How to get the first Monday of a month with MomentJS?如何使用 MomentJS 获得一个月的第一个星期一?
【发布时间】:2018-02-07 19:54:10
【问题描述】:

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

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

【问题讨论】:

  • the documentation for isoWeekday 怎么样让您认为它会给您带来每月的第一个星期一?您需要做的不仅仅是设置当前的星期一。试一试。如果您遇到困难,请提出一个具体的问题。
  • @T.J.Crowder 你看到了吗?在我的代码中,我尝试创建该月的第一个日期,它应该在第一周,isoWeekday 将返回一周中的星期一,对吗?
  • 如果第一个是星期三怎么办?那一周的星期一是在上个月,而不是它的第一个星期一。再说一遍:你必须做更多的工作。 Moment API 为您提供了很多工作。
  • @TJCrowder 确定我知道上个月的第一个星期一,这就是为什么我说我的代码不起作用,我只是要求一个解决方案并向人们展示我已经尝试过的内容.如果我做得对,为什么要来这里? Moment API 为您提供了很多使用

标签: javascript fullcalendar momentjs


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我相信@xenteros 的回答不适用于从星期日开始的几个月,因为星期一将是第 9 号。

    这是一个简单的修复:

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

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 2023-03-21
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 2011-12-05
      • 2019-10-19
      • 1970-01-01
      相关资源
      最近更新 更多