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

如何从JavaScript Date对象获取形如12:48, Oct 30的当前日期时间格式?

好问题!要把JavaScript的Date对象转换成12:48, Oct 30这种格式,有两种实用的方式,我分别给你拆解清楚:


方法一:手动提取日期时间组件(兼容所有浏览器)

如果需要兼容一些老版本浏览器,手动提取各个时间组件是最稳妥的方式。步骤如下:

  1. 处理12小时制的时间:需要把24小时制的小时转换为12小时制,同时处理0点(转为12)和12点(保持12)的特殊情况。
  2. 补零分钟数:确保分钟数始终是两位数字(比如9分钟显示为09)。
  3. 获取月份缩写:定义一个包含月份缩写的数组,通过getMonth()(返回0-11的数字)索引取值。
  4. 拼接最终格式:把时间、逗号、月份缩写和日期组合起来。

完整代码示例:

function formatDate(date) {
  // 处理12小时制小时
  const hours = date.getHours();
  const twelveHour = hours % 12 || 12; // 0点转为12,其他取模12
  // 补零分钟
  const minutes = String(date.getMinutes()).padStart(2, '0');
  // 月份缩写数组
  const monthAbbrs = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 
                      'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  const month = monthAbbrs[date.getMonth()];
  // 日期
  const day = date.getDate();
  
  return `${twelveHour}:${minutes}, ${month} ${day}`;
}

// 使用示例:基于当前时间
const now = new Date();
console.log(formatDate(now)); // 输出类似 "12:48, Oct 30"

方法二:使用Intl.DateTimeFormat(现代浏览器推荐)

现代浏览器支持的Intl.DateTimeFormat API可以更简洁地处理日期格式化,无需手动维护月份数组或处理时间转换。唯一需要注意的是,默认输出顺序是月份 日期, 时间,我们需要调整为时间, 月份 日期:

function formatDate(date) {
  // 配置格式化选项
  const options = {
    hour: '2-digit',
    minute: '2-digit',
    month: 'short',
    day: 'numeric',
    hour12: true
  };
  
  // 先得到默认格式(如 "Oct 30, 12:48")
  const defaultFormatted = new Intl.DateTimeFormat('en-US', options).format(date);
  // 拆分并重组顺序
  const [datePart, timePart] = defaultFormatted.split(', ');
  return `${timePart}, ${datePart}`;
}

// 使用示例
const now = new Date();
console.log(formatDate(now)); // 输出类似 "12:48, Oct 30"

这种方式代码更简洁,且不需要自己处理边缘情况(比如月份索引、补零逻辑),推荐在支持ES6+的环境中使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:02:59