Angular 12无需外部库获取90天后日期的更简洁实现方案
优化实现方案
方案1:使用时间戳直接计算,代码最短
如果你不需要考虑夏令时特殊场景,直接用Date.now()获取当前时间戳加上90天的毫秒数即可,配合空值合并赋值运算符??=简化写法:futureDate ??= new Date(Date.now() + 90 * 86400000).toISOString();其中
86400000是一天的毫秒数,省略冗余的乘法计算逻辑。方案2:兼容夏令时的高可读写法
如果需要适配存在夏令时的时区,用setDate的方案更准确,同时减少重复的Date实例化:const now = new Date(); futureDate ??= new Date(now.setDate(now.getDate() + 90)).toISOString();方案3:可复用的工具函数封装
如果项目中频繁需要做日期偏移计算,可以封装极简工具函数,后续调用更简洁:// 全局工具函数只需要定义一次 const addDays = (date: Date, days: number) => new Date(date.setDate(date.getDate() + days)); // 业务侧调用 futureDate ??= addDays(new Date(), 90).toISOString();
注意:如果你的业务逻辑中futureDate为空字符串也需要重新赋值,把上面的??=替换为||=即可。
内容的提问来源于stack exchange,提问作者user16444670
相关产品推荐
相关产品推荐

