一、日历时间
// .calendar()以日历格式表达,去掉.calendar()是正常格式返回
moment().calendar(); // 当前时间————今天10:00
moment().subtract(9,"days").calendar(); // 当前时间前9天,2021/11/07
moment().subtract(4,"days").calendar(); // 当前时间前4天,上星期五10:00
moment().subtract(1,"days").calendar(); // 当前时间前1天,昨天10:00
moment().add(9, 'days').calendar(); // 当前时间加9天,2021/11/25
moment().add(4, 'days').calendar(); // 当前时间加4天,下星期五10:00
moment().add(1,"days").calendar(); // 当前时间加1天,明天10:00
二、过去时间、未来时间显示
moment(); // 当前时间
moment().subtract(1, 'years'); // 当前时间减1年
moment().subtract(7, 'months'); // 当前时间减7个月
moment().subtract(15, 'days'); // 当前时间减15天
moment().add(1, 'years'); // 当前时间加1年
moment().add(7, 'months'); // 当前时间加7个月
moment().add(15, 'days'); // 当前时间加15天
// years、months、hours、minute、seconds同理
// years、months、days、hours、minute、seconds可写为Y、M、D、H、m、s
注:subtract vt. 减去;扣掉,即以前的时间
add vt. 增加,添加,即将来的时间
三、日期的格式化
moment().format(); // 格式为2021-11-17T10:10:10+08:00
moment().format('YYYY-MM-DD HH:mm:ss'); // 当前时间,格式为2021-11-17 10:10:10
moment().format('dddd'); // 星期几
moment().format("MMM Do YY"); // X 月 X 日 X 年
moment().format('YYYY [escaped] YYYY');
四、相对时间
moment("20201031", "YYYYMMDD").fromNow();// 1年前
moment("20201031", "YYYYMMDD").fromNow(true); // 1年(传入 true,则可以获得不带后缀的值)
1. startOf() endOf() 应用场景:在时间、日期组件使用时,可以禁选当天之前的日期。时间做比较时使用。
(1)startOf() 时间开头
通过将原始的 moment 设置为时间单位的开头来对其进行更改
moment().startOf('day').fromNow(); // 设置为今天的00:00:00;
moment().startOf('hour').fromNow(); // 设置为当前时间0分钟0秒钟0毫秒
(2)endOf 时间末尾
通过将原始的 moment 设置为时间单位的末尾来对其进行更改
moment().endOf(‘year’).fromNow(); // 设置为今年的12月31号的23:59:59
moment().endOf(‘day’).fromNow(); // 设置为今天的23:59:59;
五、时间段
moment() < current || moment().subtract(365, 'days') > current; // 过去的一年时间内
moment().subtract(7, 'days').add(1, 'hours'), moment().add(1, 'hours') // 过去的7天,且时间向上取整
current < moment().subtract(7, "days") || current > moment().add(7, 'd') // 只能选前7后7