前言 最近因為APP資料處理速度太慢,其中發現一個部分的速度影響是因為parsing時間字串,所以做了時間轉換工具的遷徙,原本用moment到dayjs,因看dayjs使用上與moment接近。在模擬器上跑parsing時間字串的時間至少有2倍的速度提升,實機上則有更大幅度的速度提升。更多的優點是它核心容量很小,可以提高載入速度。 安裝 yarn add dayjs dayjs基本用法 let m = dayjs('時間字串') 之前用moment是 let m = new moment('時間字串') 確認是dayjs物件 m instanceof dayjs // 這個寫法在早期的dayjs沒支援 取用年月日時分秒 秒鐘 m.second(), // 0-59 分鐘 m.minute(), // 0-59 小時 m.hour(), // 0-23 日期 m.date(), // 1-31 月份 m.month(), // 0-11 年分 m.year(), // e.g. 2020 比較時間 相同時間 m1.isSame(m2, 可略的比較時間單位) 時間在後面 m1.isAfter(m2, 可略的比較時間單位) 反之用isBefore 計算時間差 m1.diff(m2, 可略的比較時間單位) 可略的比較時間單位有'day','hour','minute'等等 格式化成字串 m.format() // 相當於 m.format("YYYY-MM-DDTHH:mm:ssZ") m.format('[YYYYescape] YYYY-MM-DDTHH:mm:ssZ[Z]') 在format內用[]可保留使用的字元不被轉換成時間數字,上面的輸出就會是'YYYYescape 2019-01-25T00:00:00-02:00Z' 額外模組 因為dayjs有分模組,來降低整體套件的容量,我這裡介紹列出用到的部分 import dayjs from 'dayjs' ; import pluginExtFmt from 'dayjs/plugin/advancedFormat' ;