博客
关于我
Moment.js常见用法总结
阅读量:797 次
发布时间:2023-02-09

本文共 2949 字,大约阅读时间需要 9 分钟。

Moment.js常见用法总结

Moment.js是一个轻量级的JavaScript时间库,旨在简化日期和时间的操作,提升开发效率。以下是Moment.js的一些常见用法,包括时间的获取、设置、格式化、比较以及与JavaScript原生Date对象的转换。

获取时间

获取时间点

moment().format('X') // 返回秒为单位的时间戳字符串moment().format('x') // 返回毫秒为单位的时间戳字符串moment().unix() // 返回秒为单位的时间戳数值moment().valueOf() // 返回毫秒为单位的时间戳数值

获取日期和时间元素

moment().year() // 获取年份moment().month() // 获取月份(0~11,0为January,11为December)moment().date() // 获取日期moment().day() // 获取星期几(0~6,0为Sunday,6为Saturday)moment().weekday() // 获取星期几(0~6,0为Sunday,6为Saturday)moment().isoWeekday() // 获取ISO星期几(1~7,1为Monday,7为Sunday)moment().hours() // 获取小时moment().minutes() // 获取分钟moment():seconds() // 获取秒moment().milliseconds() // 获取毫秒

获取完整时间信息

moment().toArray() // 返回数组:[year, month, date, hours, minutes, seconds, milliseconds]moment().toObject() // 返回对象:{year: x, month: x, date: x, hours: x, minutes: x, seconds: x, milliseconds: x}

设置时间

设置单个时间点

moment().year(2019) // 设置年份moment().month(11) // 设置月份(0~11)moment().date(15) // 设置日期moment().set('year', 2019) // 设置年份moment().set('month', 11) // 设置月份moment().set('date', 15) // 设置日期

设置时间间隔

moment().add(1, 'years') // 添加1年moment().add(1, 'months') // 添加1个月moment().add(1, 'days') // 添加1天moment().add(1, 'weeks') // 添加1周moment().add(1, 'hours') // 添加1小时moment():minutes() // 添加1分钟moment().add(1, 'seconds') // 添加1秒

减少时间间隔

moment().subtract(1, 'years') // 减少1年moment().subtract(1, 'months') // 减少1个月moment().subtract(1, 'days') // 减少1天moment().subtract(1, 'weeks') // 减少1周moment().subtract(1, 'hours') // 减少1小时moment().subtract(1, 'minutes') // 减少1分钟moment().subtract(1, 'seconds') // 减少1秒

格式化时间

常见日期格式

moment().format('YYYY年MM月DD日') // YYYY年MM月DD日格式moment():format('YYYY-MM-DD') // YYYY-MM-DD格式moment():format('HH时mm分ss秒') // 24小时制时间格式moment():format('hh:mm:ss a') // 12小时制时间格式,包含AM/PMmoment().format('X') // 秒为单位的时间戳moment().format('x') // 毫秒为单位的时间戳

比较时间

计算时间差

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') // 返回负数时间差

转换为JavaScript原生Date对象

let m = moment();let nativeDate1 = m.toDate();let nativeDate2 = new Date(m);// nativeDate1 和 nativeDate2 可以相互转换

实战示例

  • 获取昨日0:00:00到昨日23:59:59的时间范围(毫秒):
  • let yesterdayStart = moment().subtract(1, 'days').startOf('day');let yesterdayEnd = moment().subtract(1, 'days').endOf('day');let milliseconds = yesterdayEnd.diff(yesterdayStart, 'milliseconds');
    1. 获取上周一到上周日的时间范围(秒):
    2. let monday = moment().subtract(1, 'weeks').isoWeekday(1);let sunday = moment().subtract(1, 'weeks').isoWeekday(7);let diffSeconds = sunday.diff(monday, 'seconds');
      1. 获取上个月第一天和最后一天的时间范围(YYYY-MM-DD):
      2. let monthFirst = moment().subtract(1, 'months').startOf('month');let monthLast = moment().subtract(1, 'months').endOf('month');let range = `${monthFirst.format('YYYY-MM-DD')},${monthLast.format('YYYY-MM-DD')}`;

        通过这些方法,你可以在项目中灵活地处理日期和时间,提升开发效率。

    转载地址:http://odffk.baihongyu.com/

    你可能感兴趣的文章
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>
    MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
    查看>>
    mysql一个字段为空时使用另一个字段排序
    查看>>
    MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
    查看>>
    MYSQL一直显示正在启动
    查看>>
    MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>
    MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
    查看>>
    MySQL不同字符集及排序规则详解:业务场景下的最佳选
    查看>>
    Mysql不同官方版本对比
    查看>>
    MySQL与Informix数据库中的同义表创建:深入解析与比较
    查看>>
    mysql与mem_细说 MySQL 之 MEM_ROOT
    查看>>
    MySQL与Oracle的数据迁移注意事项,另附转换工具链接
    查看>>
    mysql丢失更新问题
    查看>>
    MySQL两千万数据优化&迁移
    查看>>
    MySql中 delimiter 详解
    查看>>
    MYSQL中 find_in_set() 函数用法详解
    查看>>
    MySQL中auto_increment有什么作用?(IT枫斗者)
    查看>>