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

如何获取「月份缩写 日, 年 时:分:秒 AM/PM」格式的JavaScript日期?

解决Date格式化为Apr 22, 2018 12:44:58 PM的问题

嘿,我明白你要的格式——Apr 22, 2018 12:44:58 PM,而toUTCString()确实只会返回带GMT后缀的标准UTC格式,完全不符合需求。给你几个实用的原生JS解决方案,不用依赖任何第三方库:

方法1:手动拼接原生Date方法(兼容性拉满)

这种方法适配所有浏览器/Node.js版本,完全自己控制格式细节:

function formatCustomDate(date, useUTC = false) {
  // 月份缩写数组
  const monthAbbrs = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  
  // 根据是否用UTC获取日期组件
  const month = monthAbbrs[useUTC ? date.getUTCMonth() : date.getMonth()];
  const day = useUTC ? date.getUTCDate() : date.getDate();
  const year = useUTC ? date.getUTCFullYear() : date.getFullYear();
  
  // 处理12小时制和AM/PM标识
  let hours = useUTC ? date.getUTCHours() : date.getHours();
  const ampm = hours >= 12 ? 'PM' : 'AM';
  hours = hours % 12;
  hours = hours === 0 ? 12 : hours; // 把0点/12点转为12
  
  // 补零处理分钟和秒,确保是两位数
  const minutes = String(useUTC ? date.getUTCMinutes() : date.getMinutes()).padStart(2, '0');
  const seconds = String(useUTC ? date.getUTCSeconds() : date.getUTCSeconds()).padStart(2, '0');
  
  return `${month} ${day}, ${year} ${hours}:${minutes}:${seconds} ${ampm}`;
}

// 测试本地时间
console.log(formatCustomDate(new Date())); 
// 输出示例:Apr 22, 2018 12:44:58 PM

// 测试UTC时间(对应你之前的Sun, 22 Apr 2018 10:45:19 GMT)
console.log(formatCustomDate(new Date('Sun, 22 Apr 2018 10:45:19 GMT'), true));
// 输出:Apr 22, 2018 10:45:19 AM

方法2:使用Intl.DateTimeFormat(现代简洁方案)

如果你的运行环境支持ES6+(现代浏览器、Node.js 10+),用Intl.DateTimeFormat会更简洁,代码可读性更高:

function formatCustomDate(date, useUTC = false) {
  return new Intl.DateTimeFormat('en-US', {
    timeZone: useUTC ? 'UTC' : undefined,
    month: 'short',
    day: 'numeric',
    year: 'numeric',
    hour: 'numeric',
    minute: '2-digit',
    second: '2-digit',
    hour12: true
  }).format(date);
}

// 测试UTC时间
console.log(formatCustomDate(new Date('Sun, 22 Apr 2018 10:45:19 GMT'), true));
// 输出:Apr 22, 2018 10:45:19 AM

小提示

  • 如果需要本地时间,调用时不传第二个参数或者传false即可。
  • 两种方法都可以直接封装成工具函数,方便项目中复用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:50:57