请关闭广告过滤器!
我们检测到你可能使用了 AdBlock 或 Adblock Plus,素材鸟网站没有弹窗广告,请支持我们更好的发展下去。
你可以设定特殊规则或将素材鸟加入白名单,以便我们更好地为大家提供免费素材。
关闭
首页 网络编程 JavaScript JavaScript获取指定年指定月份有几周,每周都有哪些日期的方法
JavaScript获取指定年指定月份有几周,每周都有哪些日期的方法

JavaScript获取指定年指定月份有几周,每周都有哪些日期的方法

JavaScript获取指定年指定月份有几周,每周都有哪些日期的方法
浏览次数:4  次     下载次数:0  次     下载积分:1  积分
评分:

要使用 JavaScript 获取指定月份的每周信息(包括每周的日期),可以按照以下步骤实现:

  • 1.获取指定月份的开始日期和结束日期。
    2.循环遍历每一天,按周归类到对应的数组。
    3.输出每周日期的集合。

  • /**
     * 获取指定月份的每周日期信息
     * @param {number} year - 年份,例如 2024
     * @param {number} month - 月份,1-12
     * @returns {Array<Array<string>>} 每周日期的二维数组,格式为 YYYY-MM-DD
     */
    function getMonthWeeks(year, month) {
        // JS 的月份是从 0 开始,所以需要减 1
        const startDate = new Date(year, month - 1, 1);
        const endDate = new Date(year, month, 0); // 获取指定月份的最后一天
    
        const weeks = [];
        let currentWeek = [];
    
        for (let date = new Date(startDate); date <= endDate; date.setDate(date.getDate() + 1)) {
            const day = date.getDay(); // 获取当前日期是星期几(0: 星期日, ..., 6: 星期六)
            const formattedDate = date.toISOString().slice(0, 10); // 格式化为 YYYY-MM-DD
    
            currentWeek.push(formattedDate);
    
            // 如果是星期六或是最后一天,结束当前周
            if (day === 6 || date.getTime() === endDate.getTime()) {
                weeks.push(currentWeek);
                currentWeek = [];
            }
        }
    
        return weeks;
    }
    
    // 测试函数
    const year = 2024;
    const month = 11; // 11 月
    const weeks = getMonthWeeks(year, month);
    
    console.log(`月份: ${year}年${month}月`);
    weeks.forEach((week, index) => {
        console.log(`第${index + 1}周:`, week);
    });
    
  • 输出示例

    以 2024 年 11 月为例,输出可能为:

    月份: 2024年11月
    第1周: [ '2024-11-01', '2024-11-02' ]
    第2周: [ '2024-11-03', '2024-11-04', '2024-11-05', '2024-11-06', '2024-11-07', '2024-11-08', '2024-11-09' ]
    第3周: [ '2024-11-10', '2024-11-11', '2024-11-12', '2024-11-13', '2024-11-14', '2024-11-15', '2024-11-16' ]
    第4周: [ '2024-11-17', '2024-11-18', '2024-11-19', '2024-11-20', '2024-11-21', '2024-11-22', '2024-11-23' ]
    第5周: [ '2024-11-24', '2024-11-25', '2024-11-26', '2024-11-27', '2024-11-28', '2024-11-29', '2024-11-30' ]
    

    代码解释

    1.new Date(year, month - 1, 1): 获取指定月份的第一天。

    2.new Date(year, month, 0): 获取指定月份的最后一天。

    3.date.getDay(): 确定当前日期是星期几。

    4.currentWeek.push(formattedDate): 将每一天加入当前周。

    5.判断周结束:

    如果 day === 6,表示是周六,结束本周。

    如果 date.getTime() === endDate.getTime(),表示是最后一天。

    你可以根据需要调整日期的格式和逻辑。

    0人收藏
    0人点赞
    本站素材来自用户分享,仅限学习交流请勿用于商业用途。如损害你的权益请联系客服QQ:201240120 给予处理。

    热卖云服务器低至61元/年

    2核2G 3M带宽 流量放心用

    立即查看
    相关素材
    上传资源赚积分
    推荐素材
    共0条评论
    最新评论
    还没有评论哦!