Day.js 一个轻量级的 JavaScript 时间日期处理库

Day.js是替代Moment.js的轻量级(2kb)时间日期库,提供相同API和用法,支持链式操作,全浏览器兼容。在项目中,若不需要多语言本地化,通过全局替换Moment.js,可以降低包体积,同时保持所有功能不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目中难免要去处理时间和日期,所以就一定会用到 Moment.js ,Moment.js 是一个大而全的 JS 时间库,使得我们处理时间和日期变得简便,但是 Moment.js 太重了(大约 200k +),而对于我们的项目我们可能只用到了其中的几个 API 而已,这时如果没有其它语言本地化的需求我们就可以使用 Day.js ,之所以使用它,仅仅是因为它有着与 Moment.js 一样的语法、一样的功能,免去了我们学习和迁移的成本。

Day.js 的基本用法如下,相同的 API ,相同的链式操作

`dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');`
优点
  1. 和 Moment.js 相同的 API 和用法
  2. 不可变数据 (Immutable)
  3. 支持链式操作 (Chainable)
  4. 仅 2kb 大小的微型库
  5. 全浏览器兼容

注:Day.js 虽然仅有 2kb 大小,但是功能一点也没有阉割,包含了事件处理的全部常用方法

文档地址

https://github.com/xx45/dayjs

原项目中已有 moment.js

如果项目里没有其它国家语言本地化的需求,那没想缩小打包体积,提升开发体验只需要 replace(/moment/g, 'dayjs')全局替换一下,就能够减小体积并且所有 API 保持不变,无需修改,下面来看一些栗子

创建
dayjs() // 当前时间
dayjs('1995-12-25') // 1995-12-25
dayjs(Date.now() - 24 * 60 * 60 * 1000) // 昨天
格式化
dayjs().format('YYYY年MM月DD日 HH:mm:ss') // 2018年08月08日 00:00:00
dayjs().format('[YYYY]') // "[2018]"。[] 里的会原样输出。
操作
dayjs().add(7, 'days') // 之后的第7天
dayjs().subtract(1, 'months') // 上个月
dayjs().startOf('months') // 获取一月初
dayjs().endOf('year') // 获取一年年末
查询
dayjs('2010-10-20').isBefore('2010-10-21') // 早于
dayjs('2010-10-20').isAfter('2010-10-19') // 晚于
dayjs().isLeapYear() // 闰年
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值