本文介绍了使用 moment.js 获取本月的第一个工作日的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些代码使用 moment.js(这是一个要求)获取每月的第一个工作日,如下所示:

I have some code that gets the first weekday of the month using moment.js (that is a requirement) which looks like this:

dateStart: function() {
    var first = moment().startOf('month');
    switch(first.day()) {
        case 6:
            return first.add(2, 'days');
        case 0:
            return first.add(1, 'days');
        default:
            return first;
    };
}

有没有更好的方法来做到这一点?

Is there a better way of doing this?

推荐答案

如果第一天是星期天或星期六 (first.day() % 6 === 0) 然后返回下星期一 (first.day(1)):

If the first day is sunday or saturday (first.day() % 6 === 0) then return next monday (first.day(1)):

function dateStart() {
  var first = moment().startOf('month');
  return first.day() % 6 === 0 ? first.add(1, 'day').day(1) : first;
}

正如评论中提到的 first.day(1) 可以返回上个月的星期一.如果一个月的第一天是星期六,就会发生这种情况.为确保您从当月的一周中获得星期一,只需将周末日期加 1.

As mentioned in comments first.day(1) can return monday in previous month. This can happen if the first day of the month is saturday. To be sure you get monday from the week in current month just add 1 to the weekend date.

这篇关于使用 moment.js 获取本月的第一个工作日的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 12:36
查看更多