moment.js使用记录

86 阅读2分钟

年份、月份、日期的令牌

输入示例描述
YYYY20144 或 2 位数字的年份
YY142 位数字的年份
Y-25带有任意数字和符号的年份
Q1..4年份的季度。将月份设置为季度的第一个月
M MM1..12月份数字
MMM MMMMJan..December语言环境中的月份名称,由 moment.locale() 设置
D DD1..31月的某天
Do1st..31st月的某天,带序数
DDD DDDD1..365年的某天
X1410715640.579Unix 时间戳
x1410715640579Unix 毫秒时间戳

文档详情

增减天数

增加天数

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

文档内容