nodejs引入moment
(1)安装
npm install moment 
 (2)引入
import moment from 'moment';  
 获得当前时间
var now = moment() 
 获得时间戳(当前时间转时间戳)
moment().format('X') // (大写X)以秒为单位,返回值为字符串类型
moment().format('x') // (小写x)以毫秒为单位,返回值为字符串类型 
 时间戳转换成时间
moment(时间戳).format("YYYY-MM-DD")   //输出实例 如 2020-10-1 
 时间/时间戳格式化
moment().format('YYYY年MM月DD日')   //'xxxx年xx月xx日'
moment().format('YYYY-MM-DD HH:mm:ss')   //'xxxx-xx-xx xx:xx:xx'
moment().format('HH时mm分ss秒')   //24小时制 'xx时xx分xx秒'
moment().format('hh:mm:ss a')   // 12小时制'xx:xx:xx am/pm'   
 | 格式代码 | 说明 | 返回值例子 | 
|---|---|---|
| M | 数字表示的月份,没有前导零 | 1到12 | 
| MM | 数字表示的月份,有前导零 | 01到12 | 
| MMM | 三个字母缩写表示的月份 | Jan到Dec | 
| MMMM | 月份,完整的文本格式 | January到December | 
| Q | 季度 | 1到4 | 
| D | 月份中的第几天,没有前导零 | 1到31 | 
| DD | 月份中的第几天,有前导零 | 01到31 | 
| d | 星期中的第几天,数字表示 | 0到6,0表示周日,6表示周六 | 
| ddd | 三个字母表示星期中的第几天 | Sun到Sat | 
| dddd | 星期几,完整的星期文本 | 从Sunday到Saturday | 
| w | 年份中的第几周 | 如42:表示第42周 | 
| YYYY | 四位数字完整表示的年份 | 如:2014 或 2000 | 
| YY | 两位数字表示的年份 | 如:14 或 98 | 
| A | 大写的AM PM | AM PM | 
| a | 小写的am pm | am pm | 
| HH | 小时,24小时制,有前导零 | 00到23 | 
| H | 小时,24小时制,无前导零 | 0到23 | 
| hh | 小时,12小时制,有前导零 | 00到12 | 
| h | 小时,12小时制,无前导零 | 0到12 | 
| m | 没有前导零的分钟数 | 0到59 | 
| mm | 有前导零的分钟数 | 00到59 | 
| s | 没有前导零的秒数 | 1到59 | 
| ss | 有前导零的描述 | 01到59 | 
| X | Unix时间戳 | 1411572969 | 
设置时间(获取想要的时间)
1.设置年月日-时分秒,以下year(-270000 -270000)可以更换成month(0-11)/date(1-31)/hours(0 -23)/minutes(0-59)/seconds(0-59)。如果超出范围,则它将会冒泡到上一级
//设置年份为2019
moment().year(2019)   
moment().set('year', 2019) 
 2、设置星期几 --day(),weekday()
moment().day(Number|String);  //day()
moment().weekday(Number)   //weekday()moment().day(-7); // 上个星期日 (0 - 7)
moment().weekday(-7); // 上个星期一moment().day(0); // 这个星期日 (0)
moment().day(7); // 下个星期日 (0 + 7)
moment().day(10); // 下个星期三 (3 + 7)
moment().day(24); // 从现在起第 3 个星期三 (3 + 7 + 7 + 7) 
 day()和weekday()的区别:
day()规定星期日为 0、星期六为 6,weekday()会根据语言环境获设置星期几。如果语言环境将星期一指定为一周的第一天,则
moment().weekday(0)将会是星期一。 如果星期日是一周的第一天,则moment().weekday(0)将会是星期日。
3.在日期上加或者减
years可以更换成months/days/weeks/hours/minutes/seconds。如果超出范围,则它将会冒泡到上一级
moment().add(1, 'years')   //年份+1
moment().subtract(1, 'years')  //年份-1 
 日期加减的一些特殊情况
1.如果原始日期的月份中的日期大于最终月份中的天数,则该月份中的日期将会更改为最终月份中的最后一天。
moment([2010, 0, 31]);                  // 一月 31 号
moment([2010, 0, 31]).add(1, 'months'); // 二月 28 号 
 2.当为日期和月份传入小数时,它们会被四舍五入到最接近的整数。 星期、季度、年份会被转换到日期或月份,然后四舍五入到最接近的整数
moment().add(1.5, 'months') == moment().add(2, 'months')
moment().add(.7, 'years') == moment().add(8, 'months') //.7*12 = 8.4,取整到 8 
 总的一些使用
获取前天的日期
moment(new Date()).add(-2,'days').format('YYYYMMDD')
获取后天的日期
moment(new Date()).add(+2,'days').format('YYYYMMDD')
将 “Thu Jun 27 2019 15:11:32 GMT+0800 (中国标准时间)”这种格式转成时间戳
var d = moment(val).hours(23).minutes(59).seconds(59).valueOf()
再parseInt(d/1000);
获取某个日期当月的最后一天
moment(“2019-04-05”).endOf('month').format("YYYYMMDD") ----》“20190430”