zoukankan      html  css  js  c++  java
  • moment.js 时间库

    一、概念:    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') // 0
    end_date.diff(start_date, 'weeks') // 1
    end_date.diff(start_date, 'days') // 7
    start_date.diff(end_date, 'days') // -7

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

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

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

  • 相关阅读:
    C#listbox使用方法
    poj 3894 System Engineer (二分图最大匹配--匈牙利算法)
    Java实现 蓝桥杯VIP 算法训练 连接字符串
    Java实现 蓝桥杯VIP 算法训练 连接字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 比较字符串
    Java实现 蓝桥杯VIP 算法训练 黑白无常
  • 原文地址:https://www.cnblogs.com/wfblog/p/11938657.html
Copyright © 2011-2022 走看看