好用的時間套件 moment

在生活實際的運用上常常會使用到時間的運算以及呈現,雖然 javascript、node.js 有提供 new Date()等語法的運用,不過,為了可以更快速簡單的完成一些格式上的工作以及時間組裝,這次使用了 moment.js 套件,做為簡單的認識。

moment.js

moment 官方 有很清楚地安裝方式,也可以使用 browser MDN。

我則是使用 npm 做為安裝, simple and easy。

npm install moment

在需要使用的檔案中 require。

const moment = require('moment')

在使用上與 new Date() 大同小異,但更為方便的是對於格式化,以及日期的加減。

const today = moment() // 會以 moment('現在時間') 的格式呈現

moment().format() // YYYY-MM-DDTHH:mm:ss+08:00
moment().format('MMMM Do YYYY, h:mm:ss a'); // November 14th 2019, 1:37:08 pm

使用 format() 所得到的結果是 string。

開始與結束

開始moment().startOf(String)

結束moment().endOf(String)

字串

  • year
  • month
  • day
  • minute
  • second
  • quarter
  • isoWeek
  • date 與 day 相似
const start = moment().startOf('day')
const start = moment().endOf('day')

加減日期

moment().add(Number, String)

moment().subtract(Number, String)

簡單的加減前一天,後一天

moment().add(1, 'days')
moment().subtract(1, 'days')

轉成 date 格式

在使用 moment 格式後,除了使用 format 轉成字串,也可以使用其他時間的制定格式像是 .toString() 也是一種字串格式。

.toDate(),則是另一種轉成日期格式的語法,可以直接接在有效的 moment()後方,如果不使用直接將 moment() 放到 new Date() 也是另外一種方式。

計算與現在經過了多少時間

moment 還有另外特別方便的功能就是可以簡單的實現計算,特定時間距離現在經過了多久。

time from now

使用 moment().fromNow()

moment([2007, 0, 29]).fromNow(); // X years ago

以上是簡單的認識好用的 npm moment 套件。