博客
关于我
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/

    你可能感兴趣的文章
    mysqldump 导出中文乱码
    查看>>
    mysqldump 导出数据库中每张表的前n条
    查看>>
    mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
    查看>>
    Mysqldump参数大全(参数来源于mysql5.5.19源码)
    查看>>
    mysqldump备份时忽略某些表
    查看>>
    mysqldump实现数据备份及灾难恢复
    查看>>
    mysqldump数据库备份无法进行操作只能查询 --single-transaction
    查看>>
    mysqldump的一些用法
    查看>>
    mysqli
    查看>>
    MySQLIntegrityConstraintViolationException异常处理
    查看>>
    mysqlreport分析工具详解
    查看>>
    MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
    查看>>
    Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
    查看>>
    mysql_real_connect 参数注意
    查看>>
    mysql_secure_installation初始化数据库报Access denied
    查看>>
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>
    MySQL“被动”性能优化汇总
    查看>>
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>