format
时间格式化,将时间输出入你想要的时间的格式,
format:可以出入年月日日期由你来定义
写法:
moment(不传入默认当前时间).format('时间格式') moment(传入自己的参数).format('根据需要自己的时间格式')
eg:
/**
* format(时间格式)
* YYYY-MM-DD 代表年月日
* eg: moment().format('YYYY-MM-DD') / 2022-05-20
* MM-DD 代表月日
* eg: moment().format('MM-DD') // 05-20
* YYYY-MM 代表年月
* eg: moment().format('YYYY-MM') // 2022-05
* YYYY 代表年
* eg: moment().format('YYYY') // 2022
* MM 代表月
* eg: moment().format('MM') // 05
* DD 代表日
* eg: moment().format('DD') // 20
* YYYY-MM-DD HH:mm:ss 代表年月日 时分秒
* eg: moment().format('YYYY-MM-DD HH:mm:ss') // 2022-05-20 11:27:38
* YYYY-MM-DD HH:mm 代表年月日 时分
* eg: moment().format('YYYY-MM-DD HH:mm') // 2022-05-20 11:27
* YYYY-MM-DD HH 代表年月日 时
* eg: moment().format('YYYY-MM-DD HH') // 2022-05-20 11
* HH:mm:ss 代表 时分秒
* eg: moment().format('HH:mm:ss') // 11:27:38
* HH:mm 代表 时分
* eg: moment().format('HH:mm') // 11:27
*/
3
week
week函数获取所在年的周数或者设置周数(星期数),传入值代表设置,传入值的类型是number类型的数字;不传值代表获取,返回值是number类型的数字
/**
* 传入moment函数,可选,时间为任意日期,如果不传默认当前时间
*/
week不传入值
/**
* !!!!!! week函数不传入值,则代表其为获取传入时间在传入时间的年分的第几周
* eg:
* 当time = '2022-6-19' moment(time).week() // 26(当年的第26周)
* 当time = new date() moment(time).week() // 21(当年的第21周) // new Data() === 2022-5-19
*/
week传入值
/**
* !!!!!! week函数传入值,则代表设置传入时间在传入时间的年分的星期,保留星期几,分以下三种场景
* 一、
* 传入时间在传入时间的年份中的周数小于传入周数,则获取到传入时间的星期数,再设置到传入周数的日期中的星期几,配合下面案例使用
* eg:time='2022-4-19',其为星期二,在传入时间的年份中他是第17周 // weekNum=21
* 17 < 21, 那么let a = moment(time).week(weekNum);
* 则a的结果就是将传入时间的星期数设置在当年第21周的星期上的时间
* 即a的结果等于 2022-05-17
*
* 二、
* 传入时间在传入时间的年份中的周数大于传入周数,则获取到传入时间的星期数,再设置到传入周数的日期中的星期几,配合下面案例使用
* eg:time='2022-5-19',其为星期四,在传入时间的年份中他是第21周 // weekNum=19
* 21 > 19,那么let a = moment(time).week(weekNum);
* 则a的结果就是将传入时间的星期数设置在当年第19周的星期上的时间
* 即a的结果等于 2022-05-05
*
* 三、
* 传入时间在传入时间的年份中的周数等于传入周数,则获取到传入时间的星期数,再设置到传入周数的日期中的星期几,配合下面案例使用
* eg:time=new date() //new date() === '2022-5-19', 其为星期四,在传入时间的年份中他是第21周 // weekNum=21
* 21 === 21, 那么let a = moment(time).week(weekNum);
* 则a的结果就是返回传入时间
* 即a的结果等于 2022-5-19
*/
4
month
month函数获取或者设置在传入时间的月份,月份为0到11之间的数字,如果超出这个数字范围则冒泡到年份,2.1.0版本之前如果 moment 更改了月份,且新的月份没有足够的天数来保留该月份的当前日期,则它将会溢出到下个月份,2.1.0版本之后更改为目标月份的末尾。month函数传入数值是number类型数字,代表设置;如果不传入,代表获取,返回值也是number类型的
/**
* 传入moment函数,可选,时间为任意日期,如果不传默认当前时间
*/
month不传值
/**
* 月份索引 0-11之间代表 1-12月
* !!!!!! month函数不传入值,则代表其为获取传入时间在传入时间的年分的月份索引,
* eg:
* 当time = '2022-6-20' moment(time).month() // 5(月份索引)(当年的第六个月)
* 当time = new date() moment(time).month() // 4(月份索引)(当年的第五个月) // new Data() === 2022-5-20
*/
month传值
/**
* !!!!!! month函数传入值,则代表设置传入时间在传入时间的年分的月份,分以下三种场景
* 一、
* 传入时间在传入时间的年份中的月份索引小于传入月份索引,则获取到传入时间的日期,再设置到传入月份索引的日期,配合下面案例使用
* eg:time='2022-5-20',日期为5-20,在传入时间的年份中他的月份索引是4 // num=5
* 4 < 5, 那么let a = moment(time).month(num);
* 则a的结果就是将传入时间的日期设置在当年月份索引为5的日期上的时间
* 即a的结果等于 2022-06-20
*
* 二、
* 传入时间在传入时间的年份中的月份索引大于传入月份索引,则获取到传入时间的日期,再设置到传入月份索引的日期,配合下面案例使用
* eg:time='2022-5-20',其日期为5-20,在传入时间的年份中他的月份索引是4 // num=3
* 4 > 3,那么let a = moment(time).month(num);
* 则a的结果就是将传入时间的星期数设置在当年月份索引为3的日期上的时间
* 即a的结果等于 2022-04-20
*
* 三、
* 传入时间在传入时间的年份中的月份索引等于传入月份索引,则获取到传入时间的日期,再设置到传入月份索引的日期,配合下面案例使用
* eg:time=new date() //new date() === '2022-05-20', 其日期为5-20,在传入时间的年份中他的月份索引是4 // num=4
* 4 === 4, 那么let a = moment(time).week(num);
* 则a的结果就是返回传入时间
* 即a的结果等于 2022-05-20
*/
5
year
year函数获取传入时间的年份或者设置年份,年份是-270000到270000之间number类型的数字,如果其不传值则为获取,返回值是年份,number类型的数字,传值代表设置年份,传入number类型的数字
/**
* 传入moment函数,可选,时间为任意日期,如果不传默认当前时间
*/
year不传值
/**
*
* !!!!!! year函数不传入值,则代表其为获取传入时间的年分,
* eg:
* 当time = '2022-6-20' moment(time).year() // 2022(年分)
* 当time = new date() moment(time).year() // 2022(年分) // new Data() === 2022-5-20
*/
year传值
/**
* !!!!!! year函数传入值,则代表设置年份,分以下三种场景
* 一、
* 传入时间的年份小于传入年份,则获取到传入时间的日期,再设置到传入年份的日期,配合下面案例使用
* eg:time='2022-5-20',日期为5-20,在传入时间的年份是2022 // num=2023
* 2022 < 2023, 那么let a = moment(time).year(num);
* 则a的结果就是将传入时间的日期设置在年份的日期上的时间
* 即a的结果等于 2023-5-20
*
* 二、
* 传入时间的年份大于传入年份,则获取到传入时间的日期,再设置到传入年份的日期,配合下面案例使用
* eg:time='2022-5-20',其日期为5-20,在传入时间的年份是2022 // num=2021
* 2022 > 2021,那么let a = moment(time).year(num);
* 则a的结果就是将传入时间的日期设置在传入年份的日期上的时间
* 即a的结果等于 2021-05-20
*
* 三、
* 传入时间的年份等于传入年份,则获取到传入时间的日期,再设置到传入年份的日期,配合下面案例使用
* eg:time=new date() //new date() === '2022-05-20', 其日期为5-20,在传入时间的年份是2022 // num=2022
* 4 === 4, 那么let a = moment(time).year(num);
* 则a的结果就是返回传入时间
* 即a的结果等于 2022-05-20
*/
6
quarter
quarter函数获取传入时间的季度或者设置季度,季度为1-4之间的数字,存在于2.6.0以上版本,quarter函数传入数值都是number类型的数字,如果不传入,返回值也是number类型的数字
/**
* 传入moment函数,可选,时间为任意日期,如果不传默认当前时间
*/
quarter不传值
/**
* !!!!!! quarter函数不传入值,则代表其为获取传入时间在传入时间的年分的季度,
* eg:
* 当time = '2022-6-20' moment(time).quarter() // 2(当年的第2个季度)
* 当time = new date() moment(time).quarter() // 2(当年的第2个月) // new Data() === 2022-5-20
*/
quarter传值
/**
* !!!!!! quarter函数传入值,则代表设置季度,分以下三种场景
* 一、
* 传入时间的在当年的季度数小于传入季度数,则获取到传入时间的日期,再设置到传入季度数的日期,配合下面案例使用
* eg:time='2022-5-20',日期为5-20,在传入时间的季度是2 // num=3
* 2 < 3, 那么let a = moment(time).quarter(num);
* 则a的结果就是将传入时间的日期设置在季度的日期上的时间
* 即a的结果等于 2022-08-20
*
* 二、
* 传入时间的季度数大于传入季度数,则获取到传入时间的日期,再设置到传入季度数的日期,配合下面案例使用
* eg:time='2022-5-20',其日期为5-20,在传入时间的季度数是2 // num=1
* 2 > 1,那么let a = moment(time).quarter(num);
* 则a的结果就是将传入时间的日期设置在传入季度的日期上的时间
* 即a的结果等于 2022-02-20
*
* 三、
* 传入时间的季度数等于传入季度数,则获取到传入时间的日期,再设置到传入季度数的日期,配合下面案例使用
* eg:time=new date() //new date() === '2022-05-20', 其日期为5-20,在传入时间的季度数是 2 // num=2
* 4 === 4, 那么let a = moment(time).quarter(num);
* 则a的结果就是返回传入时间
* 即a的结果等于 2022-05-20
*/
7
startOf
startOf函数将原始的 moment 设置为时间单位的开头来对其进行更改,startOf的传入值(week,month,day等),设置当前传入值的第一天,必传值,类型为string。
/**
* moment()如果不传值默认为当前时间 , new Date() === 2022-5-20
* moment().startOf('year'); // 设置传入时间的当前年的第一天 2022-01-01 00:00:00
* moment().startOf('month'); // 设置传入时间的当前月的第一天 2022-05-01 00:00:00
* moment().startOf('day'); // 设置传入时间当天的时间初始时间 2022-05-20 00:00:00
* moment().startOf('week'); // 设置传入时间当前周的第一天 2022-05-15 00:00:00
* moment().startOf('quarter'); // 设置传入时间当前季度的第一天 2022-04-01 00:00:00
*/
8
endOf
endOf函数将原始的 moment 设置为时间单位的开头来对其进行更改,end的传入值和startOf的传入值相同,设置当前传入值的最后一天,必传值,类型为string。
/**
* moment()如果不传值默认为当前时间 , new Date() === 2022-5-20
* moment().endOf('year'); // 设置传入时间当前年的最后一天 2022-12-31 23:59:59
* moment().endOf('month'); // 设置传入时间当前月的最后一天 2022-05-31 23:59:59
* moment().endOf('day'); // 设置传入时间当天的时间结束时间 2022-05-20 23:59:59
* moment().endOf('week'); // 设置传入时间当前周的最后一天 2022-05-21 23:59:59
* moment().endOf('quarter'); // 设置传入时间当前季度的最后一天 2022-06-30 23:59:59
*/
9
valueOf
valueOf输出自Unix纪元以来的毫秒数,和date.valueOf一样
console.log(moment().valueOf()) // 毫秒数1653028736149