博客
关于我
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 Connector/Net 句柄泄露
    查看>>
    multiprocessor(中)
    查看>>
    mysql CPU使用率过高的一次处理经历
    查看>>
    Multisim中555定时器使用技巧
    查看>>
    MySQL CRUD 数据表基础操作实战
    查看>>
    multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
    查看>>
    mysql csv import meets charset
    查看>>
    multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
    查看>>
    MySQL DBA 数据库优化策略
    查看>>
    multi_index_container
    查看>>
    mutiplemap 总结
    查看>>
    MySQL Error Handling in Stored Procedures---转载
    查看>>
    MVC 区域功能
    查看>>
    mysql generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
    查看>>
    Mysql group by
    查看>>
    MySQL I 有福啦,窗口函数大大提高了取数的效率!
    查看>>
    mysql id自动增长 初始值 Mysql重置auto_increment初始值
    查看>>
    MySQL in 太多过慢的 3 种解决方案
    查看>>
    Mysql Innodb 锁机制
    查看>>
    MySQL InnoDB中意向锁的作用及原理探
    查看>>