在项目中难免要去处理时间和日期,所以就一定会用到 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() // 闰年

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

  1. Day.js轻量级 JavaScript 时间日期处理库可替代Moment.js

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

  2. javascript 时间日期处理相加,减操作方法js

    javascript 时间日期处理相加,减操作方法js (2011-04-22 18:08:51) 转载▼ 标签: 杂谈   [JavaScript]2009-02-21 12:01:32 阅读523 ...

  3. libgo高性能网络服务器,【开源】gnet: 一个轻量级且高性能的 Golang 网络库

    ![](https://ask.qcloudimg.com/http-save/1303222/sipe2g9n9h.png) # Github 主页 [https://github.com/panj ...

  4. 【开源推荐】gnet: 一个轻量级且高性能的 Go 网络库

    Github 主页 https://github.com/panjf2000/gnet 欢迎大家围观~~,目前还在持续更新,感兴趣的话可以 star 一下暗中观察哦. 简介 gnet 是一个基于事件驱 ...

  5. javascript时间日期操作

    Js获取当前日期时间及其它操作 var myDate = new Date(); myDate.getYear();        //获取当前年份(2位) myDate.getFullYear(); ...

  6. JavaScript时间日期

    通过时间日期对象可以从中获取更加具体的时间日期 var date = new Date() //获取到年 var year = date.getfulYear() console.log(year) ...

  7. moment 时间日期处理库 解析部分

    moment 官方api 1. 安装导入 1.1 安装 npm install moment -g # 全局安装 npm install moment # 安装 1.2 导入 //require 方式 ...

  8. eth java,一个轻量级的Java实现的ETH库

    简介: 这是一个轻量级的eth库,支持eth的私钥,公钥,地址的生成,和eth及其智能合约的转账离线签名操作 项目地址:https://github.com/wypeng2012/ETHLiteFor ...

  9. Day.js —— 一个轻量型的日期时间库 moment 的完美代替品

    对于日期时间处理,常见有moment.js luxon等库,然而这些库在个人看来有点大了,而平常人往往只用到其中个别功能,这就有点浪费,当然也可以抽取想要模块,但稍显繁琐.对于这种情况,我一般喜欢自己 ...

最新文章

  1. java操作ad域 免证书
  2. ai人工智能服务器操作系统,全球首款100%纯国产的AI操作系统来了,但说媲美Windows有意义吗...
  3. Linux创建文件自动消失,Linux中没有文件创建时间的概念
  4. GO 语言websocket编程
  5. java中对象的生存期_JSP中JavaBean的生命周期
  6. lisp提取长方形坐标_用 Python 对图片主体轮廓进行提取、颜色标记、并计算区域面积...
  7. iPhone 14 Pro外观细节曝光:打孔屏加持 支持新一代的LTPO技术
  8. python两个数组合并、找出中位数_leetcode刷题记录-找出这两个有序数组的中位数(python版本)...
  9. Android学习总结(2)——App客户端与服务器交互中的token
  10. arpspoof渗透工具使用方法详解+实战
  11. python爬虫的用途_python爬虫用代理ip有什么用途?
  12. 我不曾忘记的初心-大厂小厂
  13. 【摄像头】图像传感器尺寸、像素大小和成像质量的关系
  14. 银行存储管理系统oracle,课内资源 - 基于JSP和Oracle实现的志愿服务银行系统
  15. CSS中-moz-、-ms-、-webkit-、-o-的意义
  16. IPFS -- 节点搭建
  17. CAD快速选择相同图形
  18. python判断字符串是字母 数字 大小写
  19. 阿里云王牌架构师杨曦:N多环境N多应用个性配置管理如何从混乱到简单?
  20. day07 pyecharts制图

热门文章

  1. 谭民机器人_机器人技术研究进展_谭民
  2. 互联网创业技术团队需要多少人
  3. 如何用好示波器?资深工程师也会忽略这些细节……
  4. ABAP ALV红绿黄灯5步
  5. mac连接wifi无ip/无法访问网络
  6. jump label
  7. 软件测试的各种技术你知道吗?
  8. Web server failed to start. Port 9080 was already in use报错解决
  9. 4.多态(Thinking in java学习四)
  10. Summer——从头开始写一个简易的Spring框架