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

Moment.js 是一個大而全的 JS 時間庫,很大地方便了咱們處理日期和時間。可是 Moment.js過重了(200k+ with locals),可能通常項目也只使用到了她幾個經常使用的API。雖然社區也有幾個輕量的時間庫,要想遷移過去又會增長新的學習和遷移成本。git

若是能有一個和 Moment.js 同樣語法,同樣功能,又輕量的庫該多好!github

Day.js 是一個輕量的 JavaScript 時間日期處理庫,和 Moment.js 的 API 設計保持徹底同樣. 若是你曾經用過 Moment.js, 那麼你已經知道如何使用 Day.js瀏覽器

Day.js 基本用法以下,相同的API,相同的鏈式操做。bash

dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');
複製代碼
  • 🕒 和 Moment.js 相同的 API 和用法
  • 💪 不可變數據 (Immutable)
  • 🔥 支持鏈式操做 (Chainable)
  • 🌐 I18n 國際化
  • 📦 僅 2kb 大小的微型庫
  • 👫 全瀏覽器兼容

Day.js 雖然僅有 2kb 大小,可是功能一點都沒有閹割。包含了時間處理的所有經常使用方法。學習


文檔地址 (中文)💖

喜歡能夠給個💖star💖鼓勵一下嗎 github.com/iamkun/dayj…spa



若是您的項目裏沒有其餘國家語言本地化的需求 1.6.0 支持多語言國際化了,按需加載須要的語言,那想縮小打包體積,提高開發體驗只須要 replace(/moment/g, 'dayjs') 全局替換一下。就能從 Moment.js + locals 200kb 減少成 dayjs 2kb的體積。全部的API調用都保持不變,無需修改。設計

來感覺一下 Dayjs 的語法吧,是否是很看起來親切呢 😋 (沒錯 這就是 moment 的語法嘛)code

建立

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哦 github.com/iamkun/dayj…orm

相關文章
相關標籤/搜索