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

如何根据月份和年份获取星期名称及当月天数?

获取指定月份的天数与每天的星期名称

嘿,看起来你已经搞定了当月天数的计算,接下来我帮你加上获取星期名称的逻辑,很简单的!

首先,先确认下你现有的daysInMonth函数是没问题的——它利用了Date对象的小技巧:当传入day=0时,会自动定位到上一个月的最后一天,所以返回的日期就是当前传入月份的总天数,这个思路很棒。

接下来要获取每天的星期名称,我们可以借助Date的getDay()方法,它会返回0(代表周日)到6(代表周六)的数字,我们只需要把这些数字映射成对应的英文名称就好。

完整代码示例

// 先定义星期名称数组,顺序对应getDay()的返回值
const weekDays = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];

// 你的天数计算函数
daysInMonth(month, year) {
  return new Date(year, month, 0).getDate();
}

// 假设你的selected_from是一个Date对象,selected_year是年份
const dys = this.daysInMonth(this.selected_from.getMonth() + 1, selected_year);

// 遍历每一天,获取日期和对应的星期名称
for (let a = 1; a <= dys; a++) {
  // 创建当天的Date对象:注意月份是0-based,所以用selected_from.getMonth()(不需要+1)
  const currentDate = new Date(selected_year, this.selected_from.getMonth(), a);
  // 获取星期名称
  const dayName = weekDays[currentDate.getDay()];
  console.log(`日期:${a},星期:${dayName}`);
}

console.log(`当月总天数:${dys}`);

关键说明

  • weekDays数组的顺序必须和getDay()的返回值对应:0是sunday,1是monday,以此类推,这样映射才不会出错。
  • 创建当天的Date对象时,月份参数用this.selected_from.getMonth()(0-based)即可,不需要加1,因为我们已经传入了正确的日期a。
  • 如果需要大写开头的星期名称(比如Sunday),只需要把数组里的字符串改成首字母大写的形式就行。

这样你就能同时拿到当月的每一天的日期和对应的星期名称啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:17:31