专栏首页Node.js开发momentjs使用指南

momentjs使用指南

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

本文分享自微信公众号 - nodejs全栈开发(geekclass),作者:挥刀北上

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 更新一道js面试题目

    今天跟大家分享一道面试题目,这个题目是这样的:给定5个相同格式的日期,怎么判断是否是连续的5天呢?

    挥刀北上
  • mac设备安装nginx注意事项

    在mac上安装nginx一般使用brew工具安装,这里面涉及了三个问题如何安装,安装完成后如何使用,安装过程和使用过程中碰到那些常见问题如何解决,下面我们来一一...

    挥刀北上
  • 白话https原理

    https好处多多,用https协议传输信息,信息的安全性会得到保障,用http传递信息几乎等于裸奔了,如图所示:

    挥刀北上
  • Moment.js的常用方法

    剑行者
  • Moment.js 写法示例

    Moment.js 是我用过的最好用的操作时间的工具库。它使得操作时间变得很简单。

    Joel
  • flask 使用flask_moment

    //不要和bootstrap同时使用,会冲突 from flask import Flask from flask import render_templa...

    用户5760343
  • HTTPS

    HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法,但是协商对称加密算法的过程,需要使用非对称加密算法来保证安全,然而直接使用非对称加...

    IT技术小咖
  • linux系统编程之基础必备(一):计算机体系结构一点基础知识

    下面这张图来自《深入理解计算机系统》: IO桥部分一般还分为北桥和南桥,北桥当然是靠上的了。 ? •CPU –主频:  CPU的时钟频率,内核工作的时钟频...

    s1mba
  • moment.js使用详解

    心谭博客
  • Page Cache与Page回写

    Page cache是通过将磁盘中的数据缓存到内存中,从而减少磁盘I/O操作,从而提高性能。此外,还要确保在page cache中的数据更改时能够被同步到磁盘上...

    233333

扫码关注云+社区

领取腾讯云代金券