⏰Day.js 2kB超輕量時間庫 和Moment.js一樣的API
Screen Shot 2018-04-24 at 10.10.10 AM.png
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鼓勵一下嗎
如果您的專案裡沒有其他國家語言本地化的需求,那想縮小打包體積,提升開發體驗只需要 replace(/moment/g, 'dayjs')
全域性替換一下。就能從 Moment.js + locals
200kb 減小成 dayjs
2kb的體積。所有的API呼叫都保持不變,無需修改。
來感受一下 Dayjs
的語法吧,是不是很看起來親切呢 (沒錯 這就是 moment 的語法嘛)
建立
dayjs() // 當前時間dayjs('1995-12-25') // 1995-12-25dayjs(Date.now() - 24 * 60 * 60 * 1000) // 昨天
格式化
dayjs().format('YYYY年MM月DD日 HH:mm:ss') // 2018年08月08日 00:00:00dayjs().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哦
作者:朱昆iamkuncom
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/430/viewspace-2814198/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用moment.js輕鬆管理日期和時間JS
- moment太重? 那就試試miment--一個超輕量級的js時間庫JS
- Moment.js時間JS
- 2024-04-26 moment.js和day.js之用法和優缺點對比JS
- 格式化時間 moment.jsJS
- Java 日期和時間 API:實用技巧與示例 - 輕鬆處理日期和時間JavaAPI
- Java 8 日期和時間的APIJavaAPI
- php 和 nginx 的幾個超時時間PHPNginx
- 一個日期處理類庫moment.jsJS
- JDK1.8-新的日期和時間APIJDKAPI
- Soa: 一個輕量級的微服務庫微服務
- HtmlParse:一款超輕量級的HTML檔案解析和爬取工具HTML
- 時間和空間的完美統一!阿里雲時空資料庫正式商業化阿里資料庫
- 配送交付時間輕量級預估實踐
- 一款超輕量的Vue+ElementUI腳手架VueUI
- 《Java 8 in Action》Chapter 12:新的日期和時間APIJavaAPTAPI
- Java 中的時間日期 APIJavaAPI
- Java 8 的時間日期 APIJavaAPI
- 輕量級超級 css 工具CSS
- 輕量級API測試工具PandariaAPI
- mysql時間操作(時間差和時間戳和時間字串的互轉)MySql時間戳字串
- SphinxJS——把字串編碼成png圖片的超輕量級開源庫JS字串編碼
- GeoPackage - 一個簡便輕量的本地地理資料庫Package資料庫
- GJLightBlueTooth——一個輕量級的iOS藍芽開發庫iOS藍芽
- api-hook,更輕量的介面測試工具APIHook
- Joda Time專案和java8時間apiJavaAPI
- 23.java介面預設方法和時間APIJavaAPI
- looter——超輕量級爬蟲框架爬蟲框架
- linux-wdt 原理和任意超時時間設定的解決方法Linux
- Java 8 常用時間 apiJavaAPI
- go-carbon 2.1.9 版本釋出, 輕量級、語義化、對開發者友好的Golang時間處理庫Golang
- go-carbon 2.1.6 版本釋出, 輕量級、語義化、對開發者友好的Golang時間處理庫Golang
- go-carbon 2.2.0 版本釋出, 輕量級、語義化、對開發者友好的Golang時間處理庫Golang
- go-carbon 2.1.1 版本釋出, 輕量級、語義化、對開發者友好的golang時間處理庫Golang
- go-carbon 2.1.8 版本釋出, 輕量級、語義化、對開發者友好的Golang時間處理庫Golang
- go-carbon 2.1.7 版本釋出, 輕量級、語義化、對開發者友好的Golang時間處理庫Golang
- 看動畫輕鬆理解時間複雜度(一)動畫時間複雜度
- JDK8中的新時間API:Duration Period和ChronoUnit介紹JDKAPI