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

求JavaScript实现无限生成每周第一天日期的解决方案

生成每周第一天日期的实现方案

根据你的需求,这里提供两种常见每周第一天定义(周日/周一)的实现代码,可直接替换原代码中的dateOfTheFirstDay部分:

方案1:以周日为每周第一天

// 生成本周第一天(周日)的Date对象,时间固定为00:00:01
function getFirstDayOfWeekSunday() {
  const today = new Date();
  const dayOfWeek = today.getDay(); // 0代表周日,1-6对应周一到周六
  const diffDays = today.getDate() - dayOfWeek;
  const firstDay = new Date(today.setDate(diffDays));
  firstDay.setHours(0, 0, 1, 0); // 设置时分秒及毫秒
  return firstDay;
}

// 替换原代码中的null
const dateOfTheFirstDay = getFirstDayOfWeekSunday();

const d = new Date(dateOfTheFirstDay);
setNewWeekTime(d.getTime());

方案2:以周一为每周第一天

// 生成本周第一天(周一)的Date对象,时间固定为00:00:01
function getFirstDayOfWeekMonday() {
  const today = new Date();
  const dayOfWeek = today.getDay(); // 0代表周日,1-6对应周一到周六
  // 计算与周一的天数差:周日需要往前推6天,其他日期推(当前星期数-1)天
  const diffDays = today.getDate() - (dayOfWeek === 0 ? 6 : dayOfWeek - 1);
  const firstDay = new Date(today.setDate(diffDays));
  firstDay.setHours(0, 0, 1, 0); // 设置时分秒及毫秒
  return firstDay;
}

// 替换原代码中的null
const dateOfTheFirstDay = getFirstDayOfWeekMonday();

const d = new Date(dateOfTheFirstDay);
setNewWeekTime(d.getTime());

可选:生成指定格式的日期字符串

如果需要得到你标注的"April 9, 2023 00:00:01"格式字符串,可添加格式化函数:

// 将Date对象格式化为指定字符串格式
function formatToTargetStr(date) {
  const datePart = date.toLocaleDateString('en-US', {
    year: 'numeric',
    month: 'long',
    day: 'numeric'
  });
  return `${datePart} 00:00:01`;
}

// 使用示例
const formattedFirstDay = formatToTargetStr(getFirstDayOfWeekSunday());
// formattedFirstDay 结果示例:"April 9, 2023 00:00:01"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:47:08