一、获取时间戳
1、获取当前时间戳
moment(new Date()).valueOf();
等效于:
Date.now();
2、获取任意时间时间戳
// 年月日,任意格式,第二个参数对时间格式进行说明
moment('2022-01-02', 'YYYY-MM-DD').valueOf()
moment('20220102','YYYYMMDD').valueOf()
moment('2022/01/02', 'YYYY/MM/DD').valueOf()
// 时分秒,任意格式,同上, 当省略年月日时,自动补充元年年月日
moment('12:30:45','hh:mm:ss').valueOf()
// ... 任意字符串表示的时间转时间戳,可以发挥想象力
总结:moment实例调用valueOf,可以将当前传入moment的时间转成时间戳
二、获取字符串的时间表示
const current_time = moment(Date.now()).format('YYYY-MM-DD hh:mm:ss');
总结:原理同获取时间戳,moment传入任意时间戳,通过调用format,传入你希望得到的时间格式,就可以得到任意的时间。(年月日时分秒间的连接符,可以自定义)
三、时间的运算
// 在当前时间的基础上加1秒钟
moment(new Date()).add(1,'second').format('YYYY-MM-DD hh:mm:ss')
// 在当前时间的基础上加1分钟
moment(new Date()).add(1,'minute').format('YYYY-MM-DD hh:mm:ss')
// 在当前时间的基础上加1小时
moment(new Date()).add(1,'hour').format('YYYY-MM-DD hh:mm:ss')
// 在当前时间的基础上加1天
moment(new Date()).add(1,'days').format('YYYY-MM-DD hh:mm:ss')
// 在当前时间的基础上加1月
moment(new Date()).add(1,'month').format('YYYY-MM-DD hh:mm:ss')
// 在当前时间的基础上加1年
moment(new Date()).add(1,'year').format('YYYY-MM-DD hh:mm:ss')
// 减法调用subtract
// 当前时间减去1年, 其余同上,发挥想象力
moment(new Date()).subtract(1,'year').format('YYYY-MM-DD hh:mm:ss')
总结:调用add加时间,调用subtract减时间,想要得到字符串表示的时间调用format,想要时间戳调用valueOf。原理相通。所有的时间描述,可以用单数形式,也可以用复数形式,效果相同,例如添加1天,使用了days,换成day一样
四、获取,设置某纬度的时间
// 获取当前的年份
moment(new Date()).year()
// 设置当前的年份
moment(new Date()).year(2023).format('YYYY-MM-DD hh:mm:ss')
// 获取当前的月份, 月份默认按照国外历法,中国需要加1
moment(new Date()).month()
// 设置当前的月份,月份默认按照国外历法,中国需要减1,下面设置的时间是五月
moment(new Date()).month(5 - 1).format('YYYY-MM-DD hh:mm:ss')