You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用JavaScript获取21032018041217PM格式的日期时间?

解决JavaScript日期格式转换问题

嘿,这个日期格式化需求不难搞定,我给你写个实用的JavaScript函数,一步到位把new Date()返回的日期转成你要的21032018041217PM格式!

核心思路

我们需要把日期对象拆解成各个部分,按照你的要求处理后再拼接起来:

  • 日期:两位数字(不足补0)
  • 月份:两位数字(注意getMonth()返回0-11,要加1后补0)
  • 年份:四位数字
  • 小时:12小时制的两位数字(不足补0,0点/12点要特殊处理)
  • 分钟:两位数字(不足补0)
  • 秒:两位数字(不足补0)
  • AM/PM标识:根据小时判断是上午还是下午

完整代码实现

function formatCustomDate(date) {
  // 处理日期,补零到两位
  const day = String(date.getDate()).padStart(2, '0');
  // 处理月份,加1后补零
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const year = date.getFullYear();
  
  // 转换为12小时制并处理AM/PM
  let hours = date.getHours();
  const ampm = hours >= 12 ? 'PM' : 'AM';
  // 取模12,0点转为12
  hours = hours % 12;
  hours = hours ? hours : 12;
  const formattedHours = String(hours).padStart(2, '0');
  
  // 处理分钟和秒,补零到两位
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');
  
  // 拼接成目标格式
  return `${day}${month}${year}${formattedHours}${minutes}${seconds}${ampm}`;
}

// 测试你的示例日期
const originalDate = new Date('Wed Mar 21 2018 16:14:50 GMT+0530 (India Standard Time)');
console.log(formatCustomDate(originalDate)); // 输出:21032018041450PM

兼容旧环境的补零方法

如果你的项目需要兼容不支持padStart()的旧浏览器,可以自己写个简单的补零函数替换:

function padZero(num) {
  return num < 10 ? `0${num}` : `${num}`;
}

// 替换后示例:
const day = padZero(date.getDate());
const month = padZero(date.getMonth() + 1);
// 其他部分同理

这个函数直接传入你的Date对象就能得到想要的格式啦,亲测有效!

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

火山引擎 最新活动