moment.js 使用方法總結

目錄npm

 


Moment.js是一個輕量級的JavaScript時間庫,它方便了平常開發中對時間的操做,提升了開發效率。平常開發中,一般會對時間進行下面這幾個操做:好比獲取時間,設置時間,格式化時間,比較時間等等。下面就是我對moment.js使用過程當中的整理,方便之後查閱。瀏覽器

回到頂部ide

1、引入moment.js

1.Node.js方式引入 (。◝‿◜。)

(1)安裝ui

npm install moment  或者  yarn add moment

(2)引入spa

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

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

2.瀏覽器方式引入 ლ(╹◡╹ლ )

<script src="moment.js"></script>

回到頂部unix

2、設定moment區域爲中國

複製代碼

// require 方式
require('moment/locale/zh-cn')
moment.locale('zh-cn'); 

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

複製代碼

回到頂部code

3、使用

1.獲取時間 ~Ⴚ(●ტ●)Ⴢ~

(1)獲取當前時間orm

moment()

(2)獲取今天0時0分0秒對象

moment().startOf('day')

(3)獲取本週第一天(週日)0時0分0秒ip

moment().startOf('week')

(4)獲取本週週一0時0分0秒

moment().startOf('isoWeek')

(5)獲取當前月第一天0時0分0秒

moment().startOf('month')

(6)獲取今天23時59分59秒

moment().endOf('day')

(7)獲取本週最後一天(週六)23時59分59秒

moment().endOf('week')

(8)獲取本週週日23時59分59秒

moment().endOf('isoWeek')

(9)獲取當前月最後一天23時59分59秒

moment().endOf('month')

(10)獲取當前月的總天數

moment().daysInMonth() 

(11)獲取時間戳(以秒爲單位)

moment().format('X') // 返回值爲字符串類型
moment().unix() // 返回值爲數值型

(12)獲取時間戳(以毫秒爲單位)

moment().format('x') // 返回值爲字符串類型
moment().valueOf() // 返回值爲數值型

(13)獲取年份

moment().year()
moment().get('year')

(14)獲取月份

moment().month()  // (0~11, 0: January, 11: December)
moment().get('month')

(15)獲取一個月中的某一天

moment().date()
moment().get('date')

(16)獲取一個星期中的某一天

moment().day() // (0~6, 0: Sunday, 6: Saturday)
moment().weekday() // (0~6, 0: Sunday, 6: Saturday)
moment().isoWeekday() // (1~7, 1: Monday, 7: Sunday)
moment().get('day')
mment().get('weekday')
moment().get('isoWeekday')

(17)獲取小時

moment().hours()
moment().get('hours')

(18)獲取分鐘

moment().minutes()
moment().get('minutes')

(19)獲取秒數

moment().seconds()
moment().get('seconds')

(20)獲取當前的年月日時分秒

moment().toArray() // [years, months, date, hours, minutes, seconds, milliseconds]
moment().toObject() // {years: xxxx, months: x, date: xx ...}

2.設置時間 ︶ε╰✿

(1)設置年份

moment().year(2019)
moment().set('year', 2019)
moment().set({year: 2019})

(2)設置月份

moment().month(11)  // (0~11, 0: January, 11: December)
moment().set('month', 11) 

(3)設置某個月中的某一天

moment().date(15)
moment().set('date', 15)

(4)設置某個星期中的某一天

moment().weekday(0) // 設置日期爲本週第一天(週日)
moment().isoWeekday(1) // 設置日期爲本週週一
moment().set('weekday', 0)
moment().set('isoWeekday', 1)

(5)設置小時

moment().hours(12)
moment().set('hours', 12)

(6)設置分鐘

moment().minutes(30)
moment().set('minutes', 30)

(7)設置秒數

moment().seconds(30)
moment().set('seconds', 30)

(8)年份+1

moment().add(1, 'years')
moment().add({years: 1})

(9)月份+1

moment().add(1, 'months')

(10)日期+1

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

(11)星期+1

moment().add(1, 'weeks')

(12)小時+1

moment().add(1, 'hours')

(13)分鐘+1

moment().add(1, 'minutes')

(14)秒數+1

moment().add(1, 'seconds')

(15)年份-1

moment().subtract(1, 'years')
moment().subtract({years: 1})

(16)月份-1

moment().subtract(1, 'months')

(17)日期-1

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

(18)星期-1

moment().subtract(1, 'weeks')

(19)小時-1

moment().subtract(1, 'hours')

(20)分鐘-1

moment().subtract(1, 'minutes')

(21)秒數-1

moment().subtract(1, 'seconds')

3.格式化時間 =≡Σ((( つ•̀ω•́)つ

格式代碼 說明 返回值例子
M 數字表示的月份,沒有前導零 1到12
MM 數字表示的月份,有前導零 01到12
MMM 三個字母縮寫表示的月份 Jan到Dec
MMMM 月份,完整的文本格式 January到December
Q 季度 1到4
D 月份中的第幾天,沒有前導零 1到31
DD 月份中的第幾天,有前導零 01到31
d 星期中的第幾天,數字表示 0到6,0表示週日,6表示週六
ddd 三個字母表示星期中的第幾天 Sun到Sat
dddd 星期幾,完整的星期文本 從Sunday到Saturday
w 年份中的第幾周 如42:表示第42周
YYYY 四位數字完整表示的年份 如:2014 或 2000
YY 兩位數字表示的年份 如:14 或 98
A 大寫的AM PM AM PM
a 小寫的am pm am pm
HH 小時,24小時制,有前導零 00到23
H 小時,24小時制,無前導零 0到23
hh 小時,12小時制,有前導零 00到12
h 小時,12小時制,無前導零 0到12
m 沒有前導零的分鐘數 0到59
mm 有前導零的分鐘數 00到59
s 沒有前導零的秒數 1到59
ss 有前導零的描述 01到59
X Unix時間戳 1411572969

(1)格式化年月日: 'xxxx年xx月xx日'

moment().format('YYYY年MM月DD日')

(2)格式化年月日: 'xxxx-xx-xx'

moment().format('YYYY-MM-DD')

(3)格式化時分秒(24小時制): 'xx時xx分xx秒'

moment().format('HH時mm分ss秒')

(4)格式化時分秒(12小時制):'xx:xx:xx am/pm'

moment().format('hh:mm:ss a')

(5)格式化時間戳(以毫秒爲單位)

moment().format('x') // 返回值爲字符串類型

4.比較時間 (◍'౪`◍)ノ゙

(1)獲取兩個日期之間的時間差

複製代碼

複製代碼

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

複製代碼

複製代碼

5.轉化爲JavaScript原生Date對象 ✿◡‿◡

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

6.日期格式化 ʅ(‾◡◝)ʃ 輸出實例

moment().format('MMMM Do YYYY, h:mm:ss a'); // 五月 24日 2019, 7:47:43 晚上
moment().format('dddd');                    // 星期五
moment().format("MMM Do YY");               // 5月 24日 19
moment().format('YYYY [escaped] YYYY');     // 2019 escaped 2019
moment().format();                          // 2019-05-24T19:47:43+08:00

7.相對時間 (◕ܫ◕) 輸出實例

1

2

3

4

5

moment("20111031""YYYYMMDD").fromNow(); // 8 年前

moment("20120620""YYYYMMDD").fromNow(); // 7 年前

moment().startOf('day').fromNow();        // 20 小時前

moment().endOf('day').fromNow();          // 4 小時內

moment().startOf('hour').fromNow();       // 1 小時前

8.日曆時間 (๑¯ิε ¯ิ๑) 輸出實例

1

2

3

4

5

6

7

8

moment().subtract(10, 'days').calendar(); // 2019年5月14日

moment().subtract(6, 'days').calendar();  // 上週六晚上7點49

moment().subtract(3, 'days').calendar();  // 本週二晚上7點49

moment().subtract(1, 'days').calendar();  // 昨天晚上7點49分

moment().calendar();                      // 今天晚上7點49分

moment().add(1, 'days').calendar();       // 明天晚上7點49分

moment().add(3, 'days').calendar();       // 下週一夜7點49

moment().add(10, 'days').calendar();      // 2019年6月3日

9.多語言支持 (๑´ڡ`๑) 輸出實例

1

2

3

4

5

6

7

8

moment().format('L');    // 2019-05-24

moment().format('l');    // 2019-05-24

moment().format('LL');   // 2019年5月24日

moment().format('ll');   // 2019年5月24日

moment().format('LLL');  // 2019年5月24日晚上7點50分

moment().format('lll');  // 2019年5月24日晚上7點50分

moment().format('LLLL'); // 2019年5月24日星期五晚上7點50分

moment().format('llll'); // 2019年5月24日星期五晚上7點50分

10.其它實用技巧 (•‾̑⌣‾̑•)✧˖° 輸出實例:

複製代碼

moment().format("YYYY-MM-DD") //格式化顯示當前時間
`${moment().subtract("month", +1).format("YYYY-MM")}-01` //上一個月的1號
`${moment().add("month", -1).format("YYYY-MM")}-01`  //仍是上一個月1號 
let M = `${moment().format("YYYY-MM")}-01` //本月一號
moment(M).add("days", -1).format("YYYY-MM-DD") //上一個月月底 
moment().startOf("year").format("YYYY-MM-DD")  //本年的的開始日期,("2019-01-01")
moment().endOf("year").format("YYYY-MM-DD")  //本年的的結束日期,("2019-12-31")
//moment 轉成時間戳
moment().valueOf()
//時間戳 轉 moment
moment(string).format()

複製代碼

 

更多可參見官方文檔:http://momentjs.cn/docs/

相關文章
相關標籤/搜索