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

如何修改JavaScript日期转换代码获取前后10天日期

如何修改JavaScript代码获取10天后和10天前的日期

嘿,这事儿超简单!你现有的dateConverter函数已经完美搞定了日期格式化的问题,咱们只需要在创建日期对象时调整天数就行,而且Date对象自带的方法会帮你自动处理跨月、跨年的情况,完全不用手动算~

核心原理

Date对象的setDate()方法可以直接设置日期的天数,它会智能处理进位逻辑:

  • 如果设置的天数超过当前月份的最大天数,会自动跳到下一个月(比如8月30日加10天 → 9月9日)
  • 如果天数小于1,会自动回退到上个月(比如1月5日减10天 → 去年12月26日)

方案1:封装通用函数(推荐)

把获取N天前后的逻辑封装成函数,以后想获取任意天数的日期都能复用:

// 你原有的日期格式化函数,完全不用改!
const dateConverter = (dateIn) => { 
  var year = dateIn.getFullYear(); 
  var month = dateIn.getMonth() + 1; // getMonth()从0开始计数,所以要加1
  var day = dateIn.getDate(); 
  return year + "-" + month.toString().padStart(2, "0") + "-" + day.toString().padStart(2, "0"); 
} 

// 获取N天后的日期
const getDateAfterNDays = (days) => {
  const targetDate = new Date(); // 创建当前日期的副本
  targetDate.setDate(targetDate.getDate() + days); // 调整目标天数
  return dateConverter(targetDate);
}

// 获取N天前的日期
const getDateBeforeNDays = (days) => {
  const targetDate = new Date();
  targetDate.setDate(targetDate.getDate() - days);
  return dateConverter(targetDate);
}

// 测试示例
console.log("今天:", dateConverter(new Date()));
console.log("10天后:", getDateAfterNDays(10));
console.log("10天前:", getDateBeforeNDays(10));

方案2:直接在代码中处理(简单场景)

如果只是临时需要10天前后的日期,也可以不用封装函数,直接写:

const dateConverter = (dateIn) => { 
  var year = dateIn.getFullYear(); 
  var month = dateIn.getMonth() + 1; 
  var day = dateIn.getDate(); 
  return year + "-" + month.toString().padStart(2, "0") + "-" + day.toString().padStart(2, "0"); 
} 

var today = new Date();

// 10天后的日期:必须创建新的Date对象,不然会修改原today的值
var tenDaysLater = new Date(today);
tenDaysLater.setDate(today.getDate() + 10);
console.log("10天后:", dateConverter(tenDaysLater));

// 10天前的日期
var tenDaysAgo = new Date(today);
tenDaysAgo.setDate(today.getDate() - 10);
console.log("10天前:", dateConverter(tenDaysAgo));

⚠️ 重要提醒:一定要创建today的副本(new Date(today)),不能直接修改原today对象!因为Date是引用类型,直接修改会改变原对象的数值,导致后续使用today时不再是最初的“今天”。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:43:13