资讯专栏INFORMATION COLUMN

⏰Day.js 2kB超轻量时间库 和Moment.js一样的API

CoreDump / 2069人阅读




Moment.js 是一个大而全的 JS 时间库,很大地方便了我们处理日期和时间。但是 Moment.js太重了(200k+ with locals),可能一般项目也只使用到了她几个常用的API。虽然社区也有几个轻量的时间库,要想迁移过去又会增加新的学习和迁移成本。

如果能有一个和 Moment.js 一样语法,一样功能,又轻量的库该多好!

Day.js 是一个轻量的 JavaScript 时间日期处理库,和 Moment.js 的 API 设计保持完全一样. 如果你曾经用过 Moment.js, 那么你已经知道如何使用 Day.js

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

dayjs().startOf("month").add(1, "day").set("year", 2018).format("YYYY-MM-DD HH:mm:ss");

? 和 Moment.js 相同的 API 和用法

? 不可变数据 (Immutable)

? 支持链式操作 (Chainable)

? 仅 2kb 大小的微型库

? 全浏览器兼容

Day.js 虽然仅有 2kb 大小,但是功能一点都没有阉割。包含了时间处理的全部常用方法。

文档地址 (中文)?

喜欢可以给个?star?鼓励一下吗
https://github.com/xx45/dayjs

如果您的项目里没有其他国家语言本地化的需求,那想缩小打包体积,提升开发体验只需要 replace(/moment/g, "dayjs") 全局替换一下。就能从 Moment.js + locals 200kb 减小成 dayjs 2kb的体积。所有的API调用都保持不变,无需修改。

来感受一下 Dayjs 的语法吧,是不是很看起来亲切呢 ? (没错 这就是 moment 的语法嘛)

创建
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() // 闰年
issue and pr"s welcome

欢迎来issue和pr哦
https://github.com/xx45/dayjs

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94637.html

相关文章

  • dayjs 源码解析(一)(api

    摘要:下面,我将自己阅读的源码的过程记录下来。阅读库的代码,首先先要知道这个库的作用是一个轻量的时间日期处理库,其用法和完全一样。介绍首先,阅读的源码,我们应该从的入手。对象是不可变的,即所有改变的操作都会返回一个新的实例。 前言 作为一个程序员,阅读别人优秀代码是提升自己技术能力的一个很好的方法。下面,我将自己阅读 dayjs(v1.6.10)的源码的过程记录下来。 阅读库的代码,首先先要...

    BlackMass 评论0 收藏0
  • FCC 成都社区·前端周刊 第 10 期

    摘要:正式发布在过去的一周,正式发布,带来大量改进和修复。这是自开展以来的第七个主要版本,并将在年月成为下一个分支。以后,如果使用具有已知安全问题的代码,的用户会收到警告通知。将自动检查针对数据库的安装请求,并在代码包含漏洞时发出警告通知。 1. Node.js 10 正式发布 在过去的一周,Node.js 10.0.0 正式发布,带来大量改进和修复。这是自 Node.js Foundati...

    BigNerdCoding 评论0 收藏0
  • FCC 成都社区·前端周刊 第 10 期

    摘要:正式发布在过去的一周,正式发布,带来大量改进和修复。这是自开展以来的第七个主要版本,并将在年月成为下一个分支。以后,如果使用具有已知安全问题的代码,的用户会收到警告通知。将自动检查针对数据库的安装请求,并在代码包含漏洞时发出警告通知。 1. Node.js 10 正式发布 在过去的一周,Node.js 10.0.0 正式发布,带来大量改进和修复。这是自 Node.js Foundati...

    li21 评论0 收藏0
  • FCC 成都社区·前端周刊 第 10 期

    摘要:正式发布在过去的一周,正式发布,带来大量改进和修复。这是自开展以来的第七个主要版本,并将在年月成为下一个分支。以后,如果使用具有已知安全问题的代码,的用户会收到警告通知。将自动检查针对数据库的安装请求,并在代码包含漏洞时发出警告通知。 1. Node.js 10 正式发布 在过去的一周,Node.js 10.0.0 正式发布,带来大量改进和修复。这是自 Node.js Foundati...

    zhangqh 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<