0

0

javascript如何操作日期和时间_有哪些常用库?

幻影之瞳

幻影之瞳

发布时间:2026-01-05 20:56:39

|

118人浏览过

|

来源于php中文网

原创

原生 date 有设计缺陷,推荐用 date-fns(轻量、纯函数)或 dayjs(moment 替代,仅 2kb);moment.js 已不建议新项目使用。

javascript如何操作日期和时间_有哪些常用库?

JavaScript 原生 Date 对象够用,但写法繁琐、易出错;生产项目推荐用 date-fns(轻量、函数式)或 dayjs(API 类似 Moment,体积小),Moment.js 已不建议新项目使用。

原生 Date 的坑怎么绕开?

原生 Date 构造行为不一致、时区处理反直觉、月份从 0 开始、getMonth()getDay() 容易混淆——这些不是“用法问题”,是设计缺陷。

  • new Date('2023-10-01') 在 Safari 和部分安卓 WebView 中解析为 UTC 时间,而在 Chrome 中可能按本地时区解析;统一改用 new Date(2023, 9, 1)(注意:月份是 0–11)
  • 格式化必须手写拼接,比如 ${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}
  • 计算“7 天后”不能直接 d.setDate(d.getDate() + 7),因为会修改原对象且跨月时逻辑脆弱;应先克隆:const next = new Date(d); next.setDate(d.getDate() + 7);

date-fns 为什么适合大多数场景?

它按需引入、无副作用、类型友好(自带 TypeScript 支持),所有函数都是纯函数,不会修改原始 Date 对象。

动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版
动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版

动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包

下载
  • 安装:npm install date-fns
  • 常用操作示例(ESM 方式导入):
import { addDays, format, parseISO, isAfter, differenceInCalendarDays } from 'date-fns';
<p>const d = parseISO('2023-10-01');
const tomorrow = addDays(d, 1);
console.log(format(tomorrow, 'yyyy-MM-dd')); // '2023-10-02'
console.log(differenceInCalendarDays(new Date(), d)); // 距离今天多少整天</p>
  • 注意:不要 import 整个包(import * as dateFns from 'date-fns'),否则会打包全部函数,体积暴增
  • 时区相关操作(如转 UTC、显示用户本地时间)需配合 date-fns-tz 插件

dayjsMoment.js 怎么选?

dayjs 是 Moment 的轻量替代,API 高度兼容,压缩后仅 2KB;Moment.js 已进入维护模式,官方明确建议迁移到 dayjsdate-fns

立即学习Java免费学习笔记(深入)”;

  • dayjs 默认不带插件,如需相对时间(fromNow)、时区支持,要显式引入:import 'dayjs/plugin/relativeTime'; dayjs.extend(relativeTime);
  • Moment.jsmoment().add(1, 'days') 看似简洁,但内部 mutates 原对象,且包体积超 300KB,Tree-shaking 无效
  • 若项目已重度依赖 Moment,可先用 moment-timezone + moment,但新功能开发请避免再加 Moment 代码

真正难的不是“选哪个库”,而是统一团队对时区的处理策略:后端传的时间戳是否含时区?前端展示要不要转成本地时间?日历组件选中日期要不要归零时分秒?这些比函数调用更影响稳定性。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

47

2026.02.13

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

192

2026.02.25

chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1057

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

837

2023.11.06

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1010

2023.08.02

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

562

2023.09.20

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

530

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

576

2023.07.28

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 6万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.4万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号