博客
关于我
Moment.js常见用法总结
阅读量:793 次
发布时间: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/

    你可能感兴趣的文章
    MAC生成公钥私钥、PKCS1 转 PKCS8
    查看>>
    Mac电脑怎么读写不了移动硬盘?解决苹果电脑不能读写移动硬盘问题
    查看>>
    Mac电脑生成git的公私钥(拉取代码更便捷)
    查看>>
    Magentic-One、AutoGen、LangGraph、CrewAI 或 OpenAI Swarm:哪种多 AI 代理框架最好?
    查看>>
    magento1给customer添加自定义属性
    查看>>
    Magic Leap是快出产品的节奏,已开放内容开发者注册通道
    查看>>
    Majorization-Minimization (MM) 和 Successive Convex Approximation (SCA)
    查看>>
    makefile 打印
    查看>>
    makefile工作笔记0001---认识使用makefile
    查看>>
    Makefile遗漏分隔符错误解决
    查看>>
    malloc和定位new表达式
    查看>>
    MAMP无法正常启动,错误提示The built-in Apache is active
    查看>>
    Managing CentOS/RHEL kernel modules.
    查看>>
    Mangoa-Auth/芒果自助多应用企业级授权系统拥有盗版入库、远程更新等功能
    查看>>
    MangoDB4.0版本的安装与配置
    查看>>
    Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
    查看>>
    Manjaro 24.2 “Yonada” 发布:尖端功能与精美界面再度进化
    查看>>
    map 函数返回的列表在使用一次后消失
    查看>>
    Map 遍历取值及jstl的取值
    查看>>
    Mapbox GL示例教程【目录】-- 已有80篇
    查看>>