题图 From 花瓣网 By Clm
momentjs是一个处理时间低格的npm包,非常流行,这个包前前端通用,文档也很详尽,但是他的api还是有点多,这里小编将其常常使用的api列举下来,方便你们使用。
下面的示例在nodejs环境下演示。
首先用npm进行安装,安装完成后导出到文件中。
首先看noment的解析用法,moment可以将时间格式的字符串转化为js中的data格式。可以先使用moment的locale方式设置为英文格式,示例代码如下:
看完解析时间格式的几个常用方式以后,我们接着看一下取值/赋值操作,代码如下:
const moment = require('moment');
moment.locale('zh-cn');
// moment取值赋值有两套方法
// 首先看第一套方法
// 设置指定时间或者当前时间的毫秒数; 注意Number的范围0-999
moment("2000-10").millisecond(Number);
// 获取当前时间或指定的毫秒数
moment().millisecond();
// 设置指定时间或者当前时间的秒数; 注意Number的范围0-59
moment("2000-10").second(Number);
// 获取当前时间或指定的秒数
moment().second();
// 设置指定时间或者当前时间的分数; 注意Number的范围0-59
moment("2000-10").minute(Number);
// 获取当前时间或指定的分数
moment().minute();
// 设置指定时间或者当前时间的小时; 注意Number的范围0-24
moment("2000-10").hour(Number);
// 获取当前时间或指定的小时
moment().hour();
// 设置指定时间或者当前时间的日期; 注意Number的范围1-31
moment("2000-10").date(Number);
// 获取当前时间或指定的日期
moment().date();
// 设置指定时间或者当前时间的星期; 注意Number的范围0-6
moment("2000-10").day(Number);
// 获取当前时间或指定的星期
moment().day();
// 这个方法既可以传递数字也可以传递字符串,英文表示的星期
//当范围超出6的话日期会自动计算
// 设置指定时间或者当前时间的某一天; 注意Number的范围1-365
moment("2000-10").dayOfYear(Number);
// 获取当前时间或指定时间的某一天
moment().dayOfYear();
// 设置指定时间或者当前时间的某一周; 注意Number的范围1-52
moment("2000-10").week(Number);
// 获取当前时间或指定时间的某一周
moment().week();
接下来我们看读取与设置的第二套方式:
上面的方式显著比第一套要简便。
接着我们往下看操作时间的方式,代码如下:
const moment = require('moment');
moment.locale('zh-cn');
// 加法的使用
// moment().add(Number, String);
// moment().add(Object);
moment().add(7, 'days');
moment().add(7, 'days').add(1, 'months'); // with chaining
moment().add({days:7,months:1}); // with object literal
// 减法的使用
// moment().subtract(Number, String);
// moment().subtract(Object);
moment().subtract(7, 'days');
moment().subtract('seconds', 1); // Deprecated in 2.8.0
moment().subtract(1, 'seconds');
// 计算某一时刻的开始时间;
moment().startOf('year'); //当前时间年度开始的时间
moment().startOf('month'); // 当前时间月份开始的时间
moment().startOf('quarter'); // 当前时间季度开始的时间
moment().startOf('week'); // 当前时间本周开始的时间
moment().startOf('day'); // 当前时间当前开始的时间
moment().startOf('hour'); // 当前时间当前小时开始的时间
moment().startOf('minute'); // 当前时间当前分数开始的时间
moment().startOf('second'); // 当前时间当前秒数开始的时间
moment().startOf('year');//等价于下面这一句
moment().month(0).date(1).hours(0).minutes(0).seconds(0).milliseconds(0);
moment().startOf('hour'); //等价于下面这一句
moment().minutes(0).seconds(0).milliseconds(0)
// 结束时间使用方法与上面类似;
moment().endOf(String);
// string 为year/month/quarter..
接着看文档,显示的用法,也就是低格显示时间,代码如下:
const moment = require('moment');
moment.locale('zh-cn');
// 格式化
// moment().format(String);
moment().format();
// 2018-11-29T16:15:21+08:00
moment().format("dddd, MMMM Do YYYY, h:mm:ss a");
// 星期四, 十一月 29日 2018, 4:14:27 下午
moment().format("ddd, hA");
// 周四, 4下午
// 时差 距离当前时刻的时间
// moment().fromNow();
// moment().fromNow(Boolean);
moment([2007, 0, 29]).fromNow(); // 12 年 前
// 加上true之后会去掉 ago
moment([2007, 0, 29]).fromNow(true); // 12 年
// 时差距离某一个时间之前;
var a = moment([2007, 0, 28]);
var b = moment([2007, 0, 29]);
a.from(b) //一天前
// 时差计算两个时间相差毫秒数;
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b) // 86400000
//可以设置单位,将毫秒数设置为年月日天;
a.diff(b, 'days')
a.diff(b, 'years');
a.diff(b, 'years', true);
以上便是moment常用的技巧的总结了,moment还有很多其他用法,这里就不做展示了,欢迎你们留言。