如何用一行原生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
相关产品推荐
相关产品推荐

