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

如何将“Sun, Oct 3”类日期字符串与当前日期比较并实现过期元素删除

问题解答

是否需要格式转换?

必须转。你从h2里拿到的是纯字符串,直接和Date类型的当前日期比大小完全没用,JS不会自动识别字符串里的日期含义做逻辑比对。

完整实现代码

// 获取当前日期,清零时分秒避免当天时间影响比对结果
const today = new Date();
today.setHours(0, 0, 0, 0);

// 获取所有h2元素
const dateHeaders = document.getElementsByTagName("h2"); 

for (const header of dateHeaders) {
  // 提取h2内的日期文本,转成Date对象
  const dateStr = header.textContent.trim();
  const targetDate = new Date(dateStr);
  // 同样清零目标日期的时分秒
  targetDate.setHours(0, 0, 0, 0);

  // 比对时间戳,当前日期晚于目标日期就删除该h2元素
  if (today.getTime() > targetDate.getTime()) {
    header.remove();
  }
}

补充说明

  • 拿h2文本的时候别用innerHTML,用textContent更稳妥,避免h2里嵌套其他标签时拿到多余的HTML代码
  • 如果你的日期是跨年的,需要手动补全对应年份,比如把日期字符串改成${dateStr} 2024再丢给Date构造器,不然默认会把缺失年份的日期解析到当前年,跨年场景会出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:15:04