关于时间的操做,一直在使用momentjs这个库。方便灵巧,功能强大。惟一的缺点是,对于前端HTML来说,它的包太太太太太大了。javascript
我是momentjs的重度用户,但它的大小时刻都在折磨人。虽然方便高效,可这动辄200K的大小,对于首页加载速度来说简直就是一场灾难。因此,开源社区有了一些精简的方案。如dayjs和miment。前端
dayjs自己就是对标momentjs进行开发的,看做者的官方介绍:java
Day.js is a minimalist JavaScript library that parses, validates, manipulates, and displays dates and times for modern browsers with a largely Moment.js-compatible API. If you use Moment.js, you already know how to use Day.js.
它的用法很是简单。git
dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');
是否是很momentjs很类似?不,其实它们就是如出一辙的。dayjs的API和moment几乎如出一辙,因此若是想要替换到现有的momentjs代码,直接替换为dayjs便可,调用语句绝大部分状况下能够一字不改。github
dayjs的大小有多少呢?2KB。再想一想momentjs的大小。spa
miment一样也是一个极简的时间处理库,压缩后的代码甚至达到了1KB左右,比dayjs还小。code
与包大小相应的,做者团队只保留了momentjs中核心方法,但其实这些方法在普通场景下已经足够。orm
miment的使用方法,也和momentjs基本一致。例如:图片
miment().add(1, 'YYYY').add(2, 'MM').add(-3, 'DD') // 增长 1 年 2 个月又减回 3 天 miment().isBetween('2000-01-01','2020-01-01') // true miment().isBefore('2000-01-01') // false miment().format('YYYY年MM月DD日 星期ww') // 2018年04月09日 星期1 *周日对应星期0*
想要取得单独的年月日,更简单ip
miment().format('YYYY') // 2018 miment().format('MM') // 04 miment().format('DD') // 09 miment().format('hh') // 23 miment().format('mm') // 57 miment().format('ss') // 16 miment().format('SSS') // 063 miment().format('ww') // 1 miment().format('WW') // 一
对于momentjs,大部分开发者都是又爱又恨,又或者大觉不爱。其实对于绝大部分的时间操做场景,dayjs和miment更符合使用要求。尤为对于非SSR的场合,想一想那精简近200KB的首屏渲染速度,真的是很是有吸引力。