⏰Day.js 2kB超輕量時候庫 和Moment.js一樣的API

《⏰Day.js 2kB超輕量時候庫 和Moment.js一樣的API》

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

    原文作者:朱昆iamkun_com
    原文地址: https://segmentfault.com/a/1190000014625584
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞