You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Day.js检测指定月份的首个工作日?

实现方案

场景1:获取当月1号的星期偏移量(用于日历首行留空,避免1号默认显示在周日位置)

这是你描述需求的核心实现逻辑,直接用Day.js自带API即可实现:

  • 先拿到目标月份的第一天实例:
    const firstDay = dayjs(给定日期).startOf('month')
  • 调用day()方法获取星期索引:
    const offset = firstDay.day()

返回值范围是0(对应周日)到6(对应周六),这个返回值就是你需要在日历第一行开头预留的空单元格个数。

举个实际示例:2024年5月1日是周三,调用dayjs('2024-05').startOf('month').day()会返回3,你在首行先渲染3个空单元格,第4个单元格放1号即可正确对齐星期位置。

场景2:获取当月首个工作日(默认周一至周五为工作日)

可以直接使用下面的方法实现:

function getFirstWorkDay(date) {
  let current = dayjs(date).startOf('month')
  const weekIndex = current.day()
  // 周日往后推1天到周一
  if (weekIndex === 0) current = current.add(1, 'day')
  // 周六往后推2天到周一
  if (weekIndex === 6) current = current.add(2, 'day')
  return current
}

方法返回当月第一个工作日的dayjs实例,你可以根据需求格式化输出日期或者获取对应的星期偏移量。

内容的提问来源于stack exchange,提问作者aydgn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:57:04