Node.js自學筆記 (8/12):時間處理

時間格式

在Javascript裡面的時間處理

參考:Javascript的時間處理

在nodejs裡面使用時間

使用 moment.js
官網: https://momentjs.com
說明文件:https://momentjs.com/docs
文件重點:

  1. 日期格式拆解
  2. 日期顯示的格式MM代表? MMM代表? MMMM代表?

安裝:

> npm i moment

若需要時區的功能,請使用 moment-timezone
安裝:

> npm i moment-timezone

moment-timezone 包含 moment.js ,並包含timezone功能。

網路上有人寫文章批評moment.js,認為太肥,效能不佳。所以有人也推薦使用另一個輕量級的日期處理套件 day.js

其實 day.js 就夠用了,但如果要用到時區,只能使用 moment-timezone.js ,因為處理時區比較複雜。

格式化時間輸出

修改 index.js

app.get('/try-moment', (req, res) => {
    const fm = 'YYYY/MM/DD HH:mm:ss'
    const m1 = moment(new Date()); //建立一個當下時間點的moment物件
    const m2 = moment(req.session.cookie.expires);
    const m3 = moment('2020-01-02', 'YYYY-MM-DD')

    res.json({
        m1: m1.format(fm),
        m2: m2.format(fm),
        m3: m3.format(fm),
        m1a: m1.tz('Europ/London').format(fm),
        m2a: m2.tz('Europ/London').format(fm),
        m3a: m3.tz('Europ/London').format(fm),
    })
});

實測結果:

網路上時區資訊:https://www.timeanddate.com/time/map/
關鍵字:rimezone map

http://localhost:3000/try-session 可以看到session的cookie的過期時間,這個時間也是標準格式: