当前位置:首页 > JavaScript

js实现上周

2026-01-31 15:00:36JavaScript

获取上周日期范围的方法

使用JavaScript获取上周的起始日期(周一)和结束日期(周日)可以通过以下代码实现:

function getLastWeekRange() {
    const today = new Date();
    const dayOfWeek = today.getDay(); // 0(周日)到6(周六)
    const daysToLastMonday = (dayOfWeek + 6) % 7 + 7; // 计算到上周一的天数

    const lastMonday = new Date(today);
    lastMonday.setDate(today.getDate() - daysToLastMonday);
    lastMonday.setHours(0, 0, 0, 0);

    const lastSunday = new Date(lastMonday);
    lastSunday.setDate(lastMonday.getDate() + 6);
    lastSunday.setHours(23, 59, 59, 999);

    return {
        start: lastMonday,
        end: lastSunday
    };
}

格式化日期输出

如果需要将日期格式化为字符串,可以使用以下辅助函数:

function formatDate(date) {
    return date.toISOString().split('T')[0];
    // 或自定义格式:${date.getFullYear()}-${pad(date.getMonth()+1)}-${pad(date.getDate())}
}

function pad(num) {
    return num.toString().padStart(2, '0');
}

获取上周每一天的日期

如果需要获取上周每一天的日期数组:

js实现上周

function getLastWeekDays() {
    const { start } = getLastWeekRange();
    const days = [];

    for (let i = 0; i < 7; i++) {
        const day = new Date(start);
        day.setDate(start.getDate() + i);
        days.push(day);
    }

    return days;
}

注意事项

  • 该方法定义的"一周"是从周一到周日
  • 如果需要周日作为一周的开始,调整daysToLastMonday的计算逻辑
  • 时区处理需根据实际需求调整,示例中使用的是本地时区

标签: 上周js
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…

js 实现mvc

js 实现mvc

MVC 模式简介 MVC(Model-View-Controller)是一种软件设计模式,将应用程序分为三个核心组件:模型(Model)处理数据和业务逻辑,视图(View)负责展示数据,控制器(Con…

js尚未实现

js尚未实现

JavaScript 尚未实现的功能 JavaScript 作为一门不断发展的语言,仍有一些功能尚未被原生支持或标准化。以下是一些常见的尚未实现的功能或特性: Promise.any() 的替代方案…

vue.js实现checkbox

vue.js实现checkbox

使用 v-model 绑定复选框 在 Vue.js 中,可以通过 v-model 指令实现复选框的双向数据绑定。复选框的值会与 Vue 实例中的数据属性同步。 <template>…