安装与引用
安装
1 | npm install moment --save |
引用
1 | import moment from 'moment'; |
自定义配置
获取当前语言
1 | moment.locale(); |
加载语言
1 | moment.locale('zh-cn'); |
UTC
获取UTC
1 | moment().utc(); |
UTC偏移量
1 | moment().utcOffset(); |
设置偏移量
以下是相同的
1 | moment().utcOffset("+08:00"); |
Moment和Date
相互转换
Date ==> Moment
1 | moment(new Date()) |
Moment ==> Date
1 | moment().toDate() |
是否 Moment 对象
1 | moment.isMoment() // false |
是否 Date 对象
1 | moment.isDate(); // false |
验证日期格式是否正确
1 | moment("not a real date").isValid(); // false |
初始化日期
字符串
1 | var day = moment("1995-12-25"); |
支持一下格式
1 | 2013-02-08T09 # An hour time part separated by a T |
字符串+格式化
1 | moment("12-25-1995", "MM-DD-YYYY"); |
对象方式
1 | moment({ hour:15, minute:10 }); |
Unix 偏移量(毫秒)
1 | var day = moment(1318781876406); |
取值
1 | moment().valueOf(); |
Unix 时间戳(秒)
1 | var day = moment.unix(1318781876); |
取值
1 | moment().unix(); |
Date对象
1 | var day = new Date(2011, 9, 16); |
数组
1 | moment([2010, 1, 14, 15, 25, 50, 125]); |
日期转字符串
比如
1 | moment().format(); // "2014-09-08T08:02:17-05:00" (ISO 8601) |
排除字符
1 | moment().format('[today] dddd'); // 'today Sunday' |
格式化字符串
Token | Output | |
---|---|---|
Month | M | 1 2 … 11 12 |
Mo | 1st 2nd … 11th 12th | |
MM | 01 02 … 11 12 | |
MMM | Jan Feb … Nov Dec | |
MMMM | January February … November December | |
Quarter | Q | 1 2 3 4 |
Day of Month | D | 1 2 … 30 31 |
Do | 1st 2nd … 30th 31st | |
DD | 01 02 … 30 31 | |
Day of Year | DDD | 1 2 … 364 365 |
DDDo | 1st 2nd … 364th 365th | |
DDDD | 001 002 … 364 365 | |
Day of Week | d | 0 1 … 5 6 |
do | 0th 1st … 5th 6th | |
dd | Su Mo … Fr Sa | |
ddd | Sun Mon … Fri Sat | |
dddd | Sunday Monday … Friday Saturday | |
Day of Week (Locale) | e | 0 1 … 5 6 |
Day of Week (ISO) | E | 1 2 … 6 7 |
Week of Year | w | 1 2 … 52 53 |
wo | 1st 2nd … 52nd 53rd | |
ww | 01 02 … 52 53 | |
Week of Year (ISO) | W | 1 2 … 52 53 |
Wo | 1st 2nd … 52nd 53rd | |
WW | 01 02 … 52 53 | |
Year | YY | 70 71 … 29 30 |
YYYY | 1970 1971 … 2029 2030 | |
Week Year | gg | 70 71 … 29 30 |
gggg | 1970 1971 … 2029 2030 | |
Week Year (ISO) | GG | 70 71 … 29 30 |
GGGG | 1970 1971 … 2029 2030 | |
AM/PM | A | AM PM |
a | am pm | |
Hour | H | 0 1 … 22 23 |
HH | 00 01 … 22 23 | |
h | 1 2 … 11 12 | |
hh | 01 02 … 11 12 | |
Minute | m | 0 1 … 58 59 |
mm | 00 01 … 58 59 | |
Second | s | 0 1 … 58 59 |
ss | 00 01 … 58 59 | |
Fractional Second | S | 0 1 … 8 9 |
SS | 00 01 … 98 99 | |
SSS | 000 001 … 998 999 | |
SSSS … SSSSSSSSS | 000[0..] 001[0..] … 998[0..] 999[0..] | |
Timezone | z or zz | EST CST … MST PST Note: as of 1.6.0, the z/zz format tokens have been deprecated. |
Z | -07:00 -06:00 … +06:00 +07:00 | |
ZZ | -0700 -0600 … +0600 +0700 | |
Unix Timestamp | X | 1360013296 |
Unix Millisecond Timestamp | x | 1360013296123 |
取值/赋值
日期和时间
1 | // 毫秒 |
年月日时分秒
1 | // 取值 |
星期的取值和赋值
周日为0
周六为6
1 | moment().day(-7); // last Sunday (0 - 7) |
注意:
因为计算的时候会把周日作为一周的第一天,所以我们要判断周日的情况
周一
1 | let date = moment("2022-12-11"); |
周日
1 | let date = moment("2022-12-11"); |
按区域标准
1 | // 比如周一是一星期的第一天 |
这种方式 获取本周一
跟预想的不一样,并没有和区域标准一样,不建议
1 | let date = moment("2022-12-11"); |
时间操作
Key | Shorthand |
---|---|
years | y |
quarters | Q |
months | M |
weeks | w |
days | d |
hours | h |
minutes | m |
seconds | s |
milliseconds | ms |
加法
1 | moment().add(15, 'minutes') |
减法
1 | moment().subtract(7, 'days'); |
比较
1 | //之前 |
差值
1 | moment(this.endTime).diff(moment(this.startTime), 'years') |
返回浮点数
1 | moment(item2.startDate).diff(this.startTime, "minutes", true) |
对象克隆
1 | var a = moment([2012]); |
或者
1 | var a = moment([2012]); |