如何格式化日期_javascript中有哪些库可用?


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' })"2025-06-15"
  • toISOString():返回标准 ISO 8601 字符串(UTC 时间),如 "2025-06-15T08:30:45.123Z",适合存储或 API 交互
  • 手动拼接:用 getFullYear()getMonth() + 1getDate() 等组合,注意月份从 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:函数式、可拆分的工具集

以纯函数设计,每个功能独立导出,适合按需引入、避免冗余代码:

  • 安装: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  # java  # js  # node.js  # git  # node  # typescript  # npm  # 浏览器  # 工具 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: Win11如何设置系统声音_Win11系统声音调整教程【攻略】  Win11怎么设置ip地址_Windows 11手动配置网络IP教程【详解】  Windows怎样关闭锁屏广告_Windows关闭锁屏广告方法【教程】  Win11怎么关闭VBS安全性_Windows11提升游戏性能关闭虚拟化安全  Win10系统映像怎么恢复 Win10使用系统映像还原电脑【指南】  LINUX的SELinux是什么_详解LINUX强制访问控制系统的入门与配置  如何在Golang中实现服务熔断与限流_Golang微服务容错与流控方法  php删除数据怎么加限制_带where条件删除避免全删【指南】  Python文件管理规范_工程实践说明【指导】  Win11怎么退出微软账户_切换Win11为本地账户登录方法【详解】  Windows蓝屏错误0x0000002C怎么解决_系统IO异常排查方法  如何用正则与预处理高效拦截带干扰符的恶意域名  Win11怎么设置按流量计费_Win11限制后台流量消耗【网络】  VSC怎样在Linux运行PHP_Ubuntu系统配置步骤【操作】  php错误怎么开启_display_errors与log_errors的设置【汇总】  如何解决同一段404代码在不同主机上表现不一致的问题  Python网络日志追踪_请求定位解析【教程】  mac怎么退出id_MAC退出iCloud账号与Apple ID切换【指南】  Django 密码修改后会话失效的解决方案  php中作用域操作符能访问私有静态属性吗_访问权限限制【指南】  Mac怎么开启“任何来源”_Mac安装未签名应用的设置方法【解决】  如何开启Windows的远程服务器管理工具(RSAT)?(管理服务器)  Win11怎么更改任务栏位置_修改注册表将Win11任务栏置顶【教程】  Win11怎么连接投影仪_Win11多显示器投屏设置指南【步骤】  Python类装饰器使用_元编程解析【教程】  Win10如何备份驱动程序_Win10驱动备份步骤【攻略】  Win11怎么设置桌面图标间距_Windows11注册表IconSpacing修改  Win11怎么设置屏保时间_调整Win11屏幕保护等待时间【详解】  Win11怎么关闭触摸屏_禁用Win11笔记本触摸屏功能设置【教程】  如何在 Django 中安全修改用户密码而不使会话失效  C++如何编写函数模板?(泛型编程入门)  Win11如何连接Xbox手柄 Win11蓝牙连接游戏手柄教程【步骤】  Win11怎么更改盘符_Win11磁盘管理修改驱动器号【步骤】  如何高效删除 NumPy 二维数组中所有元素相同的列  Win11怎么关闭系统推荐内容_Windows11开始菜单布局设置  php下载安装后memory_limit怎么设置_内存限制调整【技巧】  php打包exe后无法读取环境变量_变量配置方法【教程】  Win11怎么设置右键刷新选项_Windows11显示更多选项技巧  Python装饰器设计思路_功能增强机制说明【指导】  php怎么下载安装后设置错误日志_phpini log配置教程【汇总】  Mac系统更新下载慢或失败怎么办_解决macOS升级问题【方法】  如何使用Golang进行HTTP服务性能测试_测量吞吐量和延迟  Win11怎么解压RAR文件 Win11自带解压功能使用方法  php文件怎么变mp4保存_php输出视频流保存为mp4操作【操作】  如何用::实现单例模式_php静态方法与作用域操作符应用【技巧】  XML的“混合内容”是什么 怎么用DTD或XSD定义  Win11怎么关闭搜索历史_Win11清除设备上的搜索历史记录  微信企业付款回调PHP怎么接收_处理企业付款异步通知数据教程【教程】  如何使用Golang捕获测试日志_Golang testing日志记录方法  Win11怎么设置单手模式_Win11触控键盘布局调整教程【技巧】 

 2025-12-17

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.