使用moment.js輕松管理日期和時間


格式化日期

當前時間:

moment().format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09 

今天是星期幾:

moment().format('d'); //3 

轉換當前時間的Unix時間戳:

moment().format('X'); 

相對時間

20120901相對當前日期是2年前

moment("20120901", "YYYYMMDD").fromNow(); //2 years ago 

7天前的日期:

moment().subtract('days',7).format('YYYY年MM月DD日'); //2014年10月01日

7天后的日期:

moment().add('days',7).format('YYYY年MM月DD日'); //2014年10月01日

9小時前的時間:

moment().subtract('hours',9).format('HH:mm:ss'); 

9小時后的時間:

moment().add('hours',9).format('HH:mm:ss'); 

moment.js提供了豐富的說明文檔,使用它還可以創建日歷項目等復雜的日期時間應用。我們日常開發中最常用的是格式化時間,下面我把常用的格式制作成表格說明供有需要的朋友查看

格式代碼 說明 返回值例子
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

Moment.js 寫法示例

Moment.js 是我用過的最好用的操作時間的工具庫。它使得操作時間變得很簡單。

創建

moment() // 當前時間 moment("1995-12-25") // 1995-12-25 moment("12-25-1995", "MM-DD-YYYY") // 1995-12-25 moment({ year :2010, month :3, day :5, hour :15, minute :10, second :3, millisecond :123}) moment(Date.now() - 24 * 60 * 60 * 1000) // 昨天 moment(new Date(2011, 9, 16)) // 2011-10-16

格式化

moment().format('YYYY年MM月DD日 HH:mm:ss') // 2016年11月11日 22:05:19 moment().format('hh:m:ss') // 10:5:19 moment().format('[YYYY]') // "YYYY"。[] 里的會原樣輸出。

轉化成 Date 對象

moment().toDate()

獲取/設置時間信息

moment().second() //獲得 秒 moment().second(Number) //設置 秒。0 到 59 moment().minute() //獲得 分 moment().minute(Number) //設置 分。0 到 59 // 類似的用法 moment().hour() // 小時 moment().date() // 一個月里的第幾天 moment().day() // 星期幾 moment().dayOfYear() // 一年里的第幾天 moment().week() // 一年里的第幾周 moment().month() // 第幾個月 moment().quarter() // 一年里的第幾個季度 moment().year() // 年 moment().daysInMonth() // 當前月有多少天

操作

moment().add(7, 'days') // 之后的第7天。第2個參數還可以是 'months', 'years' 等。注意是復數。 moment().add(7, 'd')// 與上面一行代碼的運行結果一樣。 moment().subtract(1, 'months') // 上個月 moment().startOf('week') // 這周的第一天 moment().startOf('hour') // 等效與 moment().minutes(0).seconds(0).milliseconds(0)。 // 還支持 'year','month' 等 moment().endOf('week')

查詢

// 早於 moment('2010-10-20').isBefore('2010-10-21') // true moment('2010-10-20').isBefore('2010-12-31', 'year') // false moment('2010-10-20').isBefore('2011-01-01', 'year') // true // 是否相等 moment('2010-10-20').isSame('2010-10-20') // true moment('2010-10-20').isSame('2009-12-31', 'year') // false moment('2010-10-20').isSame('2010-01-01', 'year') // true // 晚於 moment('2010-10-20').isAfter('2010-10-19') // true moment('2010-10-20').isAfter('2010-01-01', 'year') // false moment('2010-10-20').isAfter('2009-12-31', 'year') // true // 是否在時間范圍內 moment('2010-10-20').isBetween('2010-10-19', '2010-10-25') // true moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year') // false moment('2010-10-20').isBetween('2009-12-31', '2012-01-01', 'year') // true moment().isLeapYear() // 是否是閏年


免責聲明!

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



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