JavaScript 日期处理类库 --- Moment.js

文档地址

常用轮子

// 格式化
moment().format('YYYY-MM-DD')  // 2022-05-28

// 获取设置启止时间
// startDate,endDate:数字毫秒
const [startDate, endDate] = duration || [];
const durations =  [moment(startDate), moment(endDate)];

// 获取当天零点
moment().startOf('days')

// 获取当天24点
moment().endOf('day')

// 计算两个日期的天数
moment('2019/06/17 14:00:00').diff(moment('2019/06/20 14:00:00'), 'days')

// 添加和减少日前
moment().add(7, 'days');
moment().subtract(7, 'days');

// 日期当天凌晨和当天23.59.59
moment(startDate.format('YYYY-MM-DD')).valueOf(),
moment(endDate.format('YYYY-MM-DD')).add(1, 'day').subtract(1, 'second').valueOf(),

安装

npm install moment --save   # npm
yarn add moment             # Yarn

日期格式化

moment().format('MMMM Do YYYY, h:mm:ss a'); // 五月 24日 2022, 10:02:08 上午
moment().format('dddd');                    // 星期二
moment().format("MMM Do YY");               // 5月 24日 22
moment().format('YYYY [escaped] YYYY');     // 2022 escaped 2022
moment().format();                          // 2022-05-24T10:02:08+08:00

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用API

// 获取或设置毫秒。 接受 0 到 999 之间的数字。 如果超出范围,则它将会冒泡到秒钟。
moment().millisecond(Number);
moment().millisecond(); // 数字

// 获取或设置秒钟。 接受 0 到 59 之间的数字。 如果超出范围,则它将会冒泡到分钟
moment().second(Number);
moment().second(); // 数字

// 获取或设置分钟。 接受 0 到 59 之间的数字。 如果超出范围,则它将会冒泡到小时
moment().minute(Number);
moment().minute(); // 数字

// 获取或设置小时。 接受 0 到 23 之间的数字。 如果超出范围,则它将会冒泡到日期。
moment().hour(Number);
moment().hour(); // 数字

// 获取或设置月份的日期。 接受 1 到 31 之间的数字。 如果超出范围,则它将会冒泡达到月份
moment().date(Number);
moment().date(); // 数字

// 获取或设置星期几。此方法可用于设置星期几,其中星期日为 0、星期六为 6
moment().day(Number|String);
moment().day(); // 数字
moment().day(-7); // 上个星期日 (0 - 7)
moment().day(0); // 这个星期日 (0)
moment().day(7); // 下个星期日 (0 + 7)
moment().day(10); // 下个星期三 (3 + 7)
moment().day(24); // 从现在起第 3 个星期三 (3 + 7 + 7 + 7)

// 根据语言环境获取或设置星期几。 0是星期一
moment().weekday(Number);
moment().weekday(); // 数字

// 获取或设置月份。接受 0 到 11 之间的数字。 如果超出范围,则它将会冒泡到年份
moment().month(Number|String);
moment().month(); // 数字

// 获取或设置年份。 接受 -270,000 至 270,000 之间的数字。
moment().year(Number);
moment().year(); // 数字

// 返回给定的 moment 实例的最大值(最远的未来)
moment.max(Moment[,Moment...]);
moment.max(Moment[]);

// 返回给定的 moment 实例的最小值(最远的过去)
moment.min(Moment[,Moment...]);
moment.min(Moment[]);

// 这是一个相当稳健的功能,可以为现有的 moment 增加时间。 若要增加时间,则传入要增加的时间的键、以及要增加的数量。
moment().add(Number, String);
moment().add(Duration);
moment().add(Object);
moment().add(7, 'days');

// 通过减去时间来改变原始的 moment。
moment().subtract(Number, String);
moment().subtract(Duration);
moment().subtract(Object);

// 通过将原始的 moment 设置为时间单位的开头来对其进行更改。
moment().startOf(String);
moment().startOf('year');    // 设置为今年一月1日上午 12:00

// 通过将原始的 moment 设置为时间单位的末尾来对其进行更改
moment().endOf(String);
moment().endOf("year"); // 将 moment 设置为今年的 12 月 31 日 23:59:59.999

在这里插入图片描述

相对时间

moment("20111031", "YYYYMMDD").fromNow(); // 11 年前
moment("20120620", "YYYYMMDD").fromNow(); // 10 年前
moment().startOf('day').fromNow();        // 10 小时前
moment().endOf('day').fromNow();          // 14 小时内
moment().startOf('hour').fromNow();       // 2 分钟前

日历时间

moment().subtract(10, 'days').calendar(); // 2022/05/14
moment().subtract(6, 'days').calendar();  // 上星期三10:02
moment().subtract(3, 'days').calendar();  // 上星期六10:02
moment().subtract(1, 'days').calendar();  // 昨天10:02
moment().calendar();                      // 今天10:02
moment().add(1, 'days').calendar();       // 明天10:02
moment().add(3, 'days').calendar();       // 下星期五10:02
moment().add(10, 'days').calendar();      // 2022/06/03

多语言支持

moment.locale();         // zh-cn
moment().format('LT');   // 10:02
moment().format('LTS');  // 10:02:08
moment().format('L');    // 2022/05/24
moment().format('l');    // 2022/5/24
moment().format('LL');   // 2022年5月24日
moment().format('ll');   // 2022年5月24日
moment().format('LLL');  // 2022年5月24日上午10点02分
moment().format('lll');  // 2022年5月24日 10:02
moment().format('LLLL'); // 2022年5月24日星期二上午10点02分
moment().format('llll'); // 2022年5月24日星期二 10:02

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值