前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >momentjs使用指南

momentjs使用指南

作者头像
挥刀北上
发布2019-07-19 15:24:20
3.2K0
发布2019-07-19 15:24:20
举报
文章被收录于专栏:Node.js开发Node.js开发

momentjs是一个处理时间格式化的npm包,非常流行,这个包前后端通用,文档也很详细,但是他的api还是有点多,这里小编将其经常使用的api罗列出来,方便大家使用。

下面的示例在nodejs环境下演示。

首先用npm进行安装,安装完成后导入到文件中。

首先看noment的解析用法,moment可以将时间格式的字符串转化为js中的data格式。可以先使用moment的locale方法设置为中文格式,示例代码如下:

看完解析时间格式的几个常用方法之后,我们接着看一下取值/赋值操作,代码如下:

代码语言:javascript
复制
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();

接下来我们看读取与设置的第二套方法:

上面的方法明显比第一套要简便。

接着我们往下看操作时间的方法,代码如下:

代码语言:javascript
复制
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..

接着看文档,显示的用法,也就是格式化显示时间,代码如下:

代码语言:javascript
复制
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还有好多其他用法,这里就不做展示了,欢迎大家留言。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 nodejs全栈开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档