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

如何在不使用moment.js的情况下格式化JavaScript日期并去除秒数

自定义JavaScript Date格式转换(去掉秒数、12小时制)

完全不用依赖Moment.js,我们可以手动提取Date对象的各个时间部分,处理补零和12小时制转换,轻松得到你想要的mm/dd/yy hh:mm AM/PM格式。

核心实现函数

function formatToCustomDate(date) {
  // 处理月份:JS月份是0-11,所以要+1,补零到两位
  const month = String(date.getMonth() + 1).padStart(2, '0');
  // 处理日期,补零到两位
  const day = String(date.getDate()).padStart(2, '0');
  // 取年份后两位
  const year = String(date.getFullYear()).slice(-2);
  // 处理12小时制的小时和时段(AM/PM)
  let hours = date.getHours();
  const period = hours >= 12 ? 'PM' : 'AM';
  // 把24小时制转成12小时制,0点(24)要转为12
  hours = hours % 12 || 12;
  hours = String(hours).padStart(2, '0');
  // 处理分钟,补零到两位
  const minutes = String(date.getMinutes()).padStart(2, '0');

  // 拼接成目标格式
  return `${month}/${day}/${year} ${hours}:${minutes} ${period}`;
}

// 测试用例
const testDate = new Date('1913-12-07T13:31:52');
console.log(formatToCustomDate(testDate)); // 输出:12/07/13 01:31 PM

关键细节说明

  • 补零处理:用padStart(2, '0')确保月份、日期、小时、分钟都是两位数字,避免出现12/7/13这种格式,统一成12/07/13
  • 12小时制转换:通过hours % 12把24小时制转为12小时制,同时用|| 12处理0点(24小时制的0),让它显示为12
  • 年份截取:用slice(-2)直接获取年份的最后两位,比如1913变成13

这个函数复用性很高,你可以直接传入任意Date对象,就能得到符合要求的格式啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:40:16