moment.js时间处理类库--时间戳和时间格式相互转换

nodejs引入moment

(1)安装

npm install moment

(2)引入

import moment from 'moment'; 

获取时间

1.获得当前时间

var now = moment()

2.获取时间戳(当前时间转时间戳)

moment().format('X') // (大写X)以秒为单位,返回值为字符串类型
moment().format('x') // (小写x)以毫秒为单位,返回值为字符串类型
moment().valueOf()   //   以毫秒为单位,返回值为数值型

 3.获取其他的时间

moment().year()     //year可换为month,date(一个月的一天),day(一个星期的一天),hours,minutes,seconds

4.获取当前的年月日时分秒---数组或对象

moment().toArray() // [years, months, date, hours, minutes, seconds, milliseconds]
moment().toObject() // {years: xxxx, months: x, date: xx ...}

 5.startOf()和endOf

moment().startOf('day')  //获取今天0时0分0秒
moment().startOf('week')   //获取本周第一天(周日)0时0分0秒
moment().startOf('isoWeek')  //获取本周周一0时0分0秒
moment().startOf('month')  //获取当前月第一天0时0分0秒
 
 
moment().endOf('day')  //获取今天23时59分59秒
moment().endOf('week')  //获取本周最后一天(周六)23时59分59秒
moment().endOf('isoWeek')   //获取本周周日23时59分59秒
moment().endOf('month')  获取当前月最后一天23时59分59秒

时间戳转换成时间

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 PMAM PM
a小写的am pmam 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
XUnix时间戳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”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值