Moment是JavaScript 日期处理类库,由于是获取设置时间,所以本文的注释可能会有偏差,学者可以自行试验。
一、解析
- moment()
要获取当前的日期和时间 - moment(String)
输入与已知的 ISO 8601 格式匹配的字符串返回固定时间,详情查看Moment解析文档
console.log(
moment('2013-039'), //返回2013年的第39天,2013年2月8号
moment('2013050'), //返回2013年的第50天,2013年2月19号
moment('2013W065'), //返回2013年的第6个星期的第5天,2013年2月8号(W表示星期)
moment('2013-02-08T09'),//返回2013年2月8号9点(T表示时间)
);
- moment(Object)
通过指定对象中的某些单位来创建 moment
console.log(moment({
year: 2010, month: 3, day: 5, hour: 15, minute: 10, second: 3, millisecond: 123 }));
//注意:这里的月份也是从0开始,此时对应的是4月
- moment(Number)
可以通过传入一个整数值来创建 moment,该整数值表示自 Unix 纪元(1970 年 1 月 1 日 12AM UTC)以来的毫秒数。
console.log(moment(1318781876406));//这个参数为毫秒数
- moment(Date)
以使用预先存在的原生 Javascript Date 对象来创建 Moment
console.log(moment(new Date(2011, 9, 16)));
- moment(Number[])
可以使用数值的数组(映射传给 new Date() 的参数)来创建 moment
console.log(moment([2010, 1, 14, 15, 25, 50, 125]));
//注意月份是从0开始的,这里对应的是2月
- moment(JSONDate)
默认情况下,Microsoft Web API 会以正确的 ISO-8601 格式返回 JSON 日期
console.log(moment("/Date(1198908717056-0700)/")); //前面一串数字为时间戳,-后面的是时区
- moment(Moment)
所有的 moment 都是可变的。 如果想要克隆 moment,则可以隐式或显式地操作。在 moment 上调用 moment() 将会克隆它。
var a=moment([2012]);
var b=moment(a);
console.log(a.valueOf()===b.valueOf())
//也可以使用clone()去克隆
- utc()
console.log(moment().format());
//GMT,默认为本地当前时间,东八区的时间(+08:00)
console.log(moment.utc().format());
//UTC的时间(世界标准时间,位于0时区,时区用Z表示,它与北京时间相差8个小时)
二、取值赋值
millisecond()/milliseconds() 获取或设置毫秒
second()/seconds() 获取/设置秒
minute()/minutes() 获取/设置分
hour()/hours() 获取/设置小时
date()/dates() 获取/设置日期
day()/days() 获取/设置星期…这些极为简单,不做过多介绍
- weekday() 根据语言环境获获取/设置星期,根据语言环境获取或设置星期几
moment.locale('zh-cn'); //把当前的语言环境设置为中文
console.log(
moment().weekday(), //0
moment().weekday(0), //0 //英文下是周日,中文下是周一
);
- dayOfYear() 获取或设置年份的日期(今天是今年的第几天)
console.log(moment().dayOfYear());
console.log(moment().dayOfYear(1));
- week()/weeks() 获取或设置年份的星期(当前星期是今年的第几个星期)
console.log(moment().week());
console.log(moment([2021, 4, 20]).week());
- month()/months() 获取或设置月份,设置时范围为0-11,还支持月份名称
console.log(moment