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

如何将new Date对象转换为dd-mm-yy格式并获取30天前的日期

JavaScript日期格式转换与30天偏移实现方案

实现需求

  • 将new Date实例解析为dd mm yy格式的日期字符串
  • 获取指定日期2020-07-09往前推30天的对应日期

核心逻辑说明

  • 日期偏移:通过Date实例的setDate()方法调整天数,往前推30天直接调用getDate() - 30即可,API会自动处理跨月、闰年的边界情况,无需手动计算月份天数
  • 固定格式转换:手动提取日期的日、月、年字段,补零处理后拼接即可,避免toLocaleDateString()受本地化环境影响输出格式不一致的问题
  • 本方案无需依赖jQuery,原生JavaScript即可实现所有需求,适配所有现代浏览器环境

完整实现代码

// 构造指定日期的Date实例
const targetDate = new Date('2020-07-09');
// 往前推30天,得到偏移后的日期实例
const prior30Date = new Date(targetDate.setDate(targetDate.getDate() - 30));

// Date实例转dd mm yy格式工具函数
function formatDateToDDMMYY(dateInstance) {
  // 日期补两位零
  const day = String(dateInstance.getDate()).padStart(2, '0');
  // 月份从0开始计数,需+1后补零
  const month = String(dateInstance.getMonth() + 1).padStart(2, '0');
  // 取年份后两位
  const year = String(dateInstance.getFullYear()).slice(-2);
  return `${day} ${month} ${year}`;
}

// 调用得到结果
const result = formatDateToDDMMYY(prior30Date);
console.log(result); // 输出结果:09 06 20

参考方案修正说明

原参考方案部分内容修正:

  • 原参考代码中var priorDate = new Date().setDate(today.getDate() +30)实现的是往后推30天的逻辑,往前推30天需将+30修改为-30,该方法返回值为对应日期的时间戳
  • 原参考使用toLocaleDateString()转换的格式受运行环境的地区设置影响,无法保证固定输出dd mm yy格式,手动提取字段拼接兼容性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:39:02