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

如何用一行原生JS实现当前日期加减指定天数?含90天前日期示例

如何用一行原生JS获取90天前的日期?

当然可以!你原来的两步写法完全能合并成一行原生JS代码,而且有两种可靠的方式实现,我给你拆解清楚:

方法一:基于Date对象的日期操作(推荐)

这是最稳妥的写法,能自动处理月份切换、闰年、夏令时等特殊场景:

const date90daysAgo = new Date(new Date().setDate(new Date().getDate() - 90));

原理很直白:

  • 先创建临时Date实例拿到当前日期
  • 调用getDate()获取当前日数,减去90得到90天前的日数
  • 调用setDate()修改临时Date的日期,这个方法会返回修改后的时间戳
  • 最后把时间戳传给新的Date构造器,直接得到目标日期对象

方法二:基于时间戳计算

如果不考虑夏令时这类特殊情况,也可以用时间戳直接计算:

const date90daysAgo = new Date(Date.now() - 90 * 24 * 60 * 60 * 1000);

这里是把90天转换成毫秒数(90天×24小时×60分钟×60秒×1000毫秒),从当前时间戳中减去这个值再转成Date对象。但要注意,部分有夏令时切换的地区可能会出现1小时误差,所以更推荐第一种方法。

对比你原来的代码:

const date90daysAgo = new Date(); 
date90daysAgo.setDate(date90daysAgo.getDate() - 90);

核心逻辑完全一致,一行版只是把创建对象和修改日期的操作合并,利用setDate()返回时间戳的特性直接生成最终的Date对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:52:29