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

JavaScript实现按整周切换Week 1/Week 2文本的问题

嘿,我来帮你搞定这个文本切换的需求!下面给你两种可行的实现方案,你可以根据自己的实际场景选择:

方案一:基于指定切换日期的整周固定显示

如果需要严格按照你设定的日期节点来切换文本,并且整周保持不变,咱们可以通过定义切换日期数组,判断当前日期落在哪个区间来实现。

实现代码&说明

// 1. 定义切换日期数组(注意:JS月份是从0开始的,所以4月要写3)
const switchDates = [
  new Date(2024, 3, 16), // 4月16日(切换为Week 1的起始日)
  new Date(2024, 3, 23), // 4月23日(切换为Week 2的起始日)
  new Date(2024, 3, 30), // 4月30日(切换为Week 1的起始日)
  // 可以继续添加后续的切换日期
];

// 2. 处理当前日期:清零时分秒,避免当天时间影响判断
var todaysdate = new Date();
todaysdate.setHours(0, 0, 0, 0);

// 3. 给切换日期排序,并添加初始边界(最早日期前默认显示Week 1)
switchDates.sort((a, b) => a - b);
switchDates.unshift(new Date(1970, 0, 1)); // 添加一个极早的初始日期

// 4. 判断当前日期所在区间,确定显示文本
let displayText = "Week 1";
for (let i = 0; i < switchDates.length - 1; i++) {
  const intervalStart = switchDates[i];
  const intervalEnd = switchDates[i + 1];
  // 当前日期落在[intervalStart, intervalEnd)区间内时,根据索引奇偶切换文本
  if (todaysdate >= intervalStart && todaysdate < intervalEnd) {
    displayText = i % 2 === 0 ? "Week 1" : "Week 2";
    break;
  }
}

// 把结果应用到你需要的地方,比如DOM元素
// document.getElementById('weekText').textContent = displayText;
console.log(displayText);

比如你说的4月16日周一到23日周一期间,这段代码会稳定显示Week 1,直到23日当天自动切换为Week 2。


方案二:每周日自动切换,保持至下周日

如果指定切换日期的方案维护起来麻烦,自动每周日切换会更省心。咱们可以通过计算当前日期与基准周日的周数差,用奇偶性来控制文本。

实现代码&说明

var todaysdate = new Date();
todaysdate.setHours(0, 0, 0, 0);

// 可选:设置第一个显示Week 1的基准周日,比如4月14日
const baseSunday = new Date(2024, 3, 14);

// 计算当前日期到基准日的天数差
const dayDiff = Math.floor((todaysdate - baseSunday) / (1000 * 60 * 60 * 24));
// 计算经过了多少个完整的周
const weekCount = Math.floor(dayDiff / 7);

// 根据周数奇偶切换文本,可根据需求调整奇偶对应关系
let displayText = weekCount % 2 === 0 ? "Week 1" : "Week 2";

// 特殊情况:如果当前日期在基准日之前,默认显示Week 1
if (dayDiff < 0) {
  displayText = "Week 1";
}

// 应用到页面
// document.getElementById('weekText').textContent = displayText;
console.log(displayText);

这个方案会在每个周日自动切换文本,并且保持一整周不变,不需要手动维护切换日期数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:16:46