JavaScript日期格式化推荐优先使用原生方法满足简单需求,复杂场景选用Day.js或date-fns;Moment.js已不推荐新项目使用。

JavaScript 中格式化日期,原生方法能应付基础需求,但处理时区、多语言、相对时间或复杂模板时容易出错。推荐用成熟库来减少 bug 和开发时间。
原生 Date 对象的常用格式化方式
不用额外库也能快速得到常见格式,适合简单场景:
toLocaleDateString():按用户本地习惯输出,支持 locale 和 options 参数,比如 new Date().toLocaleDateString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit' }) → "2024-06-15" toISOString():返回标准 ISO 8601 字符串(UTC 时间),如 "2024-06-15T08:30:45.123Z",适合存储或 API 交互 手动拼接:用 getFullYear()、getMonth() + 1、getDate() 等组合,注意月份从 0 开始、补零需自行处理
Day.js:轻量且够用的现代选择
体积小(约 2KB)、不可变、API 类似 Moment.js,是当前最主流的轻量替代方案:
安装:npm install dayjs 基本用法:dayjs().format('YYYY-MM-DD HH:mm:ss') 支持插件扩展:如 relativeTime(“2 小时前”)、timezone(时区转换)、locale(中文/日文等) 不修改原 Date 对象,无全局污染,Tree-shaking 友好
date-fns:函数式、可拆分的工具集
以纯函数设计,每个功能独立导出,适合按需引入、避免冗余代码:
立即学习“Java免费学习笔记(深入)”;
安装:npm install date-fns 用法示例:format(new Date(), 'yyyy-MM-dd HH:mm:ss')(注意 token 大小写敏感) 可单独引入函数:import { format, addDays, isAfter } from 'date-fns',打包体积更可控 天然支持 TypeScript,文档清晰,更新活跃
Moment.js:经典但已进入维护模式
曾是行业标准,功能全面但体积大(~300KB)、mutable 设计易引发意外修改。官方已明确建议新项目改用 Day.js 或 date-fns:
仅在遗留系统中继续维护,不再新增特性 若必须使用,请确保锁定版本,避免升级引入兼容问题 浏览器端尽量避免,Node.js 旧服务可酌情保留
基本上就这些。日常开发优先选 Day.js(上手快、生态稳)或 date-fns(按需精确、函数式偏好)。原生方法够用就别加依赖,复杂国际化或时区逻辑再考虑对应插件。不复杂但容易忽略的是:始终确认输入时间是否含时区信息,否则本地格式化可能和预期不符。
以上就是如何格式化日期_javascript中有哪些库可用?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1543298.html
微信扫一扫
支付宝扫一扫