moment.js 時間庫


一、概念:    https://www.cnblogs.com/Jimc/p/10591580.html    或    http://momentjs.cn/(官網)

  1、Moment.js是一個輕量級的JavaScript時間庫,它方便了日常開發中對時間的操作,提高了開發效率。

二、API:   日常開發中,通常會對時間進行下面這幾個操作:比如獲取時間,設置時間,格式化時間,比較時間等等。

  1、引入 moment.js 文件

// require 方式
var moment = require('moment');

// import 方式
import moment from 'moment'; 

  2、設置 moment 時區: 好像默認就是 中國的時區。所以一般不用單獨去設置。

import 'moment/locale/zh-cn'
moment.locale('zh-cn');   

  3、創建 moment 時間對象: moment 對象 類似 Date 對象。一個moment 對象就是一個  時間對象。但是不同於原生的 Date對象,是經過封裝的時間對象。

    a、時間對象都是有完整時間戳的,原生Date時間對象 的 時間戳一般是固定,不會去改變的,但是 moment 時間對象的 時間戳,通過調用API是會變化的(即改變了時間)。

moment()   // 里面可以傳入參數,創建指定時間的 時間對象。注意一個 moment 時間對象,只能執行一次moment()。就像 原生的 Date 一樣,只能new一次。不然 每執行一次就是一個新的 時間對象。

    b、moment 時間對象,指向的時間對象是可變的。這點和 Date時間對象是不一樣的。所以不要  把 一個 moment 對象,賦值給一個變量,在對這個變量進行時間設置。

let test = moment()   // 創建moment時間對象。
console.log(test.format('YYYY-MM-DD hh:mm:ss a'))  //  2019-11-26 09:34:19 pm
test.add(1,'days')
console.log(test.format('YYYY-MM-DD hh:mm:ss a'))  //  2019-11-27 09:34:19 pm

    所以 moment 時間對象的使用,一般都直接調用 moment()產生的時間對象,后接對應的方法。如:下面都是相對於 date1 的時間,但是不能直接在date1上操作,不然date1是時間就會被改變。

let date1 = moment()  // 現在的時間對象
let date2 = moment().subtract(1, 'days')  // 一天前的時間對象
let date2 = moment().add(1, 'days')    // 一天后的時間對象

  4、獲取時間對象的信息:  moment 時間對象 提供 了這個時間對象下各種時間的獲取。如:獲取一個時間對象的 時、分、秒 等等。

     moment  提供獲取時間對象信息的接口蠻多的,具體的可以參考    公網 或者 https://www.cnblogs.com/Jimc/p/10591580.html

  5、設置時間(也是創建時間的一種):就是基於一個 時間對象,變成 另外一個時間對象,即 相對時間 。  如, 一個天前的時間對象(相對當前時間)、一個天后的時間對象等。

let date2 = moment().subtract(1, 'days')  // 一天前 的 時間對象,而不是 moment() 時間對象了
let date2 = moment().add(1, 'days')       // 一天后 的 時間對象

  6、格式化時間:將時間對象,以某種字符串 格式 表示。也是 一種  時間對象  信息的獲取。

moment().format('YYYY-MM-DD')  //   2019-11-28

  7、比較時間:  獲取兩個日期之間的時間差

let start_date = moment().subtract(1, 'weeks')
let end_date = moment()

end_date.diff(start_date) // 返回毫秒數

end_date.diff(start_date, 'months') // 0
end_date.diff(start_date, 'weeks') // 1
end_date.diff(start_date, 'days') // 7
start_date.diff(end_date, 'days') // -7

  8、moment對象  轉化為JavaScript原生 Date對象

moment().toDate()
new Date(moment())

 

 

 其他的還有一些 功能,但是不常用,這里就不介紹了,感興趣的話,可以去官網查看。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM