美文网首页web前端开发
moment.js的常用方法

moment.js的常用方法

作者: 不会潜水的猫小喵 | 来源:发表于2020-03-24 16:46 被阅读0次

    moment.js 是一个 JavaScript 日期处理类库,用于解析、检验、操作、以及显示日期。因为项目中经常用到,在此记录一下比较常用的方法。如果想学习更详细的使用方法,可以访问 Moment.js官网 或者查看 Moment.js中文网。以下用到的例子均是没有设置 moment.locale() 语言环境情况下的测试结果。

    1.日期格式化

    //moment().format(String)
    moment().format(); //moment 2020-03-23T18:20:11+08:00
    //年份
    moment().format('YYYY'); //2020
    //季度
    moment().format('Q'); //1
    //月份
    moment().format('MMMM'); //March
    //月份的日期
    moment().format('DD'); //24
    //年份的日期
    moment().format('DDD'); //84
    //星期几
    moment().format('dddd'); //Monday
    //更具体的格式
    moment().format('YYYY-MM-DD HH:mm:ss'); //2020-03-23 18:10:54
    moment().format('YYYY[测]MM[试]DD HH[时]mm[间]ss'); //2020测03试23 18时25间42
    moment().format('YYYY [test] YYYY'); //2020 test 2020
    moment().format('YYYY [test] MM'); //2020 test 03
    moment().format('YYYY [test] DD'); //2020 test 23
    

    2.时间戳字符串相互转换

    moment(1259186487000).format('YYYY-MM-DD HH:mm:ss'); //2009-11-26 06:01:27
    moment('2009-11-26 06:01:27').valueOf(); //1259186487000
    +moment('2009-11-26 06:01:27'); //1259186487000
    

    3.相对时间

    moment('20091126', 'YYYYMMDD').fromNow(); //10 years ago
    moment('20091126', 'YYYYMMDD').fromNow(true); //10 years
    moment([2009, 11, 26]).fromNow(); //10 years ago
    moment().startOf('day').fromNow(); //15 hours ago
    moment().endOf('hour').fromNow(); //in 24 minutes
    

    4.时间查询

    //查询当前年份是否为闰年
    moment([2009]).isLeapYear(); //false
    //检查一个时间是否在另一个时间之前(精确到秒比较)
    moment('2009-11-26 06:01:27').isBefore('2009-11-26 06:01:28'); //true
    //检查一个时间是否在另一个时间之前(精确到年比较)
    moment('2009-11-26 06:01:27').isBefore('2009-11-26 06:01:28', 'year'); //false
    //检查一个时间是否在另一个时间之后
    moment('2009-11-26').isAfter('2020-11-26', 'year'); //false
    //检查一个时间是否在其他两个时间之间
    moment('2016-11-26').isBetween('2009-11-26', '2020-11-26'); //true
    //获取当月的天数
    moment('2009-11', 'YYYY-MM').daysInMonth(); //30
    //获取当前 moment 年份的周数
    moment().weeksInYear(); //52
    

    4.时间计算

    //时间增加
    moment().add(4, 'years').format('YYYY-MM-DD'); //2024-03-24
    moment().add(4, 'months').format('YYYY-MM-DD'); //2020-07-24
    moment().add(4, 'days').format('YYYY-MM-DD'); //2020-03-28
    moment([2016]).add(4, 'years').format('YYYY'); //2020
    //时间减少
    moment().subtract(10, 'years').format('YYYY'); //2010
    //设置为时间单位的开头对时间进行更改
    moment().startOf('hour').format('YYYY-MM-DD HH:mm:ss'); //2020-03-24 15:00:00
    //设置为时间单位的末尾对时间进行更改
    moment().endOf('hour').format('YYYY-MM-DD HH:mm:ss'); //2020-03-24 15:59:59
    

    5.时长创建

    //要创建时长,调用 moment.duration(),默认以毫秒为单位。
    //创建时长1500毫秒
    moment.duration(1500);
    //获取时长的毫秒数(返回 0 至 999 之间的数字)
    moment.duration(1500).milliseconds(); //500
    //获取时长的秒数(返回 0 至 59 之间的数字)
    moment.duration(1500).seconds(); //1
    //获取时长的长度(以秒为单位)
    moment.duration(1500).asSeconds(); //1.5
    //以秒为单位创建时长
    moment.duration(2, 'seconds');
    //以年为单位创建时长
    moment.duration(2, 'years');
    

    6.日历时间显示

    //moment().calendar(referenceTime, formats);
    //moment#calendar 会根据日期与 referenceTime 的日期(默认为今天)的接近程度,使用不同的字符串格式化日期
    moment().calendar(); //Today at 3:35 PM
    moment().calendar(null, {
        sameDay: '[今天]',
        nextDay: '[明天]',
        nextWeek: 'dddd',
        lastDay: '[昨天]',
        lastWeek: '[上个] dddd',
        sameElse: 'DD/MM/YYYY'
    }); //今天
    
    moment().calendar('2020-03-25', {
        sameDay: '[今天]',
        nextDay: '[明天]',
        nextWeek: 'dddd',
        lastDay: '[昨天]',
        lastWeek: '[上个] dddd',
        sameElse: 'DD/MM/YYYY'
    }); //昨天
    
    moment().calendar(null, {
      sameDay: function (now) {
        if (this.isBefore(now)) {
          return '[今天将会发生]';
        } else {
          return '[今天已发生]';
        }
        /* ... */
      }
    }); //今天已发生
    

    相关文章

      网友评论

        本文标题:moment.js的常用方法

        本文链接:https://www.haomeiwen.com/subject/lwmyxhtx.html