一、概念:    https://www.cnblogs.com/Jimc/p/10591580.html    或    http://momentjs.cn/(官网)

  1、Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。

二、API:   日常开发中,通常会对时间进行下面这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等。

  1、引入 moment.js 文件

// require 方式
var moment = require('moment'); // import 方式
import moment from 'moment';

  2、设置 moment 时区: 好像默认就是 中国的时区。所以一般不用单独去设置。

import 'moment/locale/zh-cn'
moment.locale('zh-cn');

  3、创建 moment 时间对象: moment 对象 类似 Date 对象。一个moment 对象就是一个  时间对象。但是不同于原生的 Date对象,是经过封装的时间对象。

    a、时间对象都是有完整时间戳的,原生Date时间对象 的 时间戳一般是固定,不会去改变的,但是 moment 时间对象的 时间戳,通过调用API是会变化的(即改变了时间)。

moment()   // 里面可以传入参数,创建指定时间的 时间对象。注意一个 moment 时间对象,只能执行一次moment()。就像 原生的 Date 一样,只能new一次。不然 每执行一次就是一个新的 时间对象。

    b、moment 时间对象,指向的时间对象是可变的。这点和 Date时间对象是不一样的。所以不要  把 一个 moment 对象,赋值给一个变量,在对这个变量进行时间设置。

let test = moment()   // 创建moment时间对象。
console.log(test.format('YYYY-MM-DD hh:mm:ss a')) // 2019-11-26 09:34:19 pm
test.add(1,'days')
console.log(test.format('YYYY-MM-DD hh:mm:ss a')) // 2019-11-27 09:34:19 pm

    所以 moment 时间对象的使用,一般都直接调用 moment()产生的时间对象,后接对应的方法。如:下面都是相对于 date1 的时间,但是不能直接在date1上操作,不然date1是时间就会被改变。

let date1 = moment()  // 现在的时间对象
let date2 = moment().subtract(1, 'days') // 一天前的时间对象
let date2 = moment().add(1, 'days') // 一天后的时间对象

  4、获取时间对象的信息:  moment 时间对象 提供 了这个时间对象下各种时间的获取。如:获取一个时间对象的 时、分、秒 等等。

     moment  提供获取时间对象信息的接口蛮多的,具体的可以参考    公网 或者 https://www.cnblogs.com/Jimc/p/10591580.html

  5、设置时间(也是创建时间的一种):就是基于一个 时间对象,变成 另外一个时间对象,即 相对时间 。  如, 一个天前的时间对象(相对当前时间)、一个天后的时间对象等。

let date2 = moment().subtract(1, 'days')  // 一天前 的 时间对象,而不是 moment() 时间对象了
let date2 = moment().add(1, 'days') // 一天后 的 时间对象

  6、格式化时间:将时间对象,以某种字符串 格式 表示。也是 一种  时间对象  信息的获取。

moment().format('YYYY-MM-DD')  //   2019-11-28

  7、比较时间:  获取两个日期之间的时间差

let start_date = moment().subtract(1, 'weeks')
let end_date = moment() end_date.diff(start_date) // 返回毫秒数 end_date.diff(start_date, 'months') //
end_date.diff(start_date, 'weeks') //
end_date.diff(start_date, 'days') //
start_date.diff(end_date, 'days') // -7

  8、moment对象  转化为JavaScript原生 Date对象

moment().toDate()
new Date(moment())

其他的还有一些 功能,但是不常用,这里就不介绍了,感兴趣的话,可以去官网查看。

最新文章

  1. MySQL,MariaDB:Undo | Redo [转]
  2. webpack打包压缩工具的使用方法
  3. EF Attach时已存在的处理方式
  4. Linux下shell颜色配置
  5. attempted to assign id from null one-to-one
  6. 【Android开发学习笔记】【第五课】Activity的生命周期-上
  7. Matlab与C/C++联合编程之Matlab以MEX方式调用C/C++代码(一)
  8. AI自动寻路
  9. 使用HttpClient发送GET请求
  10. C++教程之lambda表达式一
  11. 微信小程序,前端大梦想(二)
  12. wep api 运行周期
  13. checkbox 用css改变默认的样式
  14. Yolov3参数解释以及答疑
  15. nodejs项目文件搭建环境
  16. Windows 2012桌面显示“我的电脑”
  17. Redis源代码分析(三十五)--- redis.c服务端的实现分析(2)
  18. 静态变量加前缀 s_(表示 static)
  19. mysql varchar类型转换int类型
  20. AdvStringGrid入门使用

热门文章

  1. Linux 初始化系统 systemd - journald 日志
  2. 【ABAP系列】SAP 的逻辑数据库解析
  3. 阅读笔记05-架构师必备最全SQL优化方案(1)
  4. 线程局部存储tls的使用
  5. pdo getLastInertID()无结果
  6. JAVA中JavaBean对象之间属性拷贝的方法
  7. [BZOJ3626] [LNOI2014]LCA(树链剖分)
  8. BZOJ 4821 (luogu 3707)(全网最简洁的代码实现之一)
  9. 贪心策略---买卖股票的最大收益 II
  10. ApacheHttpServer修改httpd.conf配置文件