登录
首页 >  文章 >  前端

JavaScript格式化日期时间方法

时间:2026-01-10 19:57:44 286浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《JavaScript如何格式化日期时间》,正文内容主要涉及到等等,如果你正在学习文章,或者是对文章有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

new Date() 默认输出 ISO 格式,需用 toLocaleString() 或 Intl.DateTimeFormat 实现本地化格式;注意 getMonth() 返回 0–11、补零用 padStart、时区用 IANA ID,复杂场景推荐 dayjs/luxon。

怎样用javascript操作日期_javascript如何格式化时间

JavaScript 中 new Date() 返回的对象本身不带格式化能力

直接 console.log(new Date()) 会输出类似 2024-05-22T14:32:15.892Z 的 ISO 字符串,这不是你想要的“2024年5月22日 14:32”这种形式。浏览器原生不提供类似 Python 的 strftime 函数,必须手动拼接或借助方法。

toLocaleDateString()toLocaleTimeString() 快速适配本地习惯

这两个方法能按用户系统语言/时区自动选择分隔符、顺序和缩写,比硬编码更可靠:

const d = new Date();
console.log(d.toLocaleDateString('zh-CN')); // "2024/5/22"
console.log(d.toLocaleTimeString('zh-CN')); // "下午2:32:15"
console.log(d.toLocaleString('zh-CN'));    // "2024/5/22 下午2:32:15"
  • 第一个参数是 locale(如 'en-US''ja-JP'),不传则用浏览器默认
  • 可传第二个参数对象控制细节,例如:{ year: 'numeric', month: 'long', day: 'numeric' } → “2024年5月22日”
  • 注意:month: '2-digit' 返回 "05"'numeric' 返回 5(无前导零)

手写格式化函数时,getMonth() 返回 0–11 是最大陷阱

很多人写 date.getMonth() + 1 却忘了加空格或补零,导致 “2024-5-5 9:5:5” 这种丑陋输出。安全做法是封装补零逻辑:

function formatDate(d) {
  const pad = n => String(n).padStart(2, '0');
  return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;
}
formatDate(new Date()); // "2024-05-22 14:32:15"
  • getMonth() 返回 0(一月)到 11(十二月),务必 +1
  • getDate() 是“几号”,getDay() 是“星期几”(0=周日),别混用
  • padStart(2, '0')toString().length === 1 ? '0'+n : n 更简洁可靠

需要时区控制?别信 toUTCString(),用 Intl.DateTimeFormat 或库

toUTCString() 固定输出 UTC 时间且格式不可控;toLocaleString() 默认用本地时区。真要指定时区(比如显示东京时间),必须用 Intl.DateTimeFormat

const d = new Date();
new Intl.DateTimeFormat('zh-CN', {
  timeZone: 'Asia/Tokyo',
  year: 'numeric',
  month: '2-digit',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit'
}).format(d); // "2024/05/22 23:32"
  • 时区 ID 必须是 IANA 格式('Asia/Shanghai''America/New_York'),不能写 'GMT+8'
  • Node.js 18+ 和现代浏览器都支持,但 IE 完全不支持
  • 复杂场景(如相对时间、解析字符串)建议用 dayjsluxon,原生 API 对模糊输入容忍度极低
时区、月份索引、补零、locale 差异——这四点漏掉任意一个,格式化结果就可能出人意料。

理论要掌握,实操不能落!以上关于《JavaScript格式化日期时间方法》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>