年份、月份、日期的令牌
| 输入 | 示例 | 描述 |
|---|---|---|
YYYY | 2014 | 4 或 2 位数字的年份 |
YY | 14 | 2 位数字的年份 |
Y | -25 | 带有任意数字和符号的年份 |
Q | 1..4 | 年份的季度。将月份设置为季度的第一个月 |
M MM | 1..12 | 月份数字 |
MMM MMMM | Jan..December | 语言环境中的月份名称,由 moment.locale() 设置 |
D DD | 1..31 | 月的某天 |
Do | 1st..31st | 月的某天,带序数 |
DDD DDDD | 1..365 | 年的某天 |
X | 1410715640.579 | Unix 时间戳 |
x | 1410715640579 | Unix 毫秒时间戳 |
增减天数
增加天数
moment('2022-08-04').add(3, 'days').format("YYYY-MM-DD")//2022-08-07
减少天数
moment('2022-08-04').subtract(3, 'days').format("YYYY-MM-DD")//2022-08-01
判断与当天的相差几天
moment('2022-08-04').diff(moment('2022-08-14'), 'days')//-10
moment('2022-08-04').diff(moment('2022-08-01'), 'days')//3
moment('2022-08-14').diff(moment(2022-08-04), 'days')//10
使用时容易遇到的问题: 带有时分秒的时间计算
moment('2022-08-14 13:00:00').diff(moment(2022-08-04 09:00:00), 'days')//9
可以通过diff判断是否是当天
let today = moment().format("YYYY-MM-DD");
//time为要判断的时间,将其转为日期格式以防误差
time = moemnt(time).format("YYYY-MM-DD");
//num是零则是今天,是负数则是今天之前,正数则今天之后(还可以通过isBefore,isAfter)
let num = moment(time).diff(today,'days);
isSame判断是否是当天(文档的查询中可见)
moment().isSame(moment(), 'second'); // true
//2022/8/4号编写
moment('2022-08-04').isSame(moment(), 'days') //true
moment('2022-08-04 17:00:00').isSame(moment('2022-08-04 18:00:00'), 'days')//true
文档的查询:isBefore、isAfter
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