前端里非常非常好用的时间格式化工具推荐

前端开发的伙伴们肯定常常遇到一个问题,那就是要求对时间的显示格式做处理,而且格式多种多样,常常让你应接不暇,现在推荐一个好用的工具给大家!

一、Moment.js介绍

解析、校验、操作、显示日期和时间的 JavaScript 工具库;是一个轻量级的js时间处理类库,其使用简单,方便了日常开发中对时间的操作,提高了开发效率。

二、使用技巧

1、可以通过传递日期的字符串来初始化 Moment 对象:

const date = moment(日期).startOf('month').format("YYYY-MM-DD")

它接受任何字符串,按照 (顺序) 解析:

ISO 8601 肯定是最方便的。这是格式参考:

格式含义例子
YYYY4 位数字年份2018
YY2 位数字年份18
M2 位数字月份号,省略前导 07
MM2 位数字月号07
MMM3 个字母的月份名称7 月
MMMM全月名称七月
dddd全天名称周日
gggg4 位数字,星期2018
gg两位数字星期18
w一年中的周没有前导零18
ww一年中以零开头的一周18
e星期几,从 0 开始4
D2 位天数,省略前导 09
DD2 位数字的天数09
Do天序号9 号
T指示时间部分的开始
HH2 位数小时 (24 小时制),从 0 到 2322
H2 位数小时 (24 小时制),从 0 到 23,前导 022
kk2 位数小时 (24 小时制) 从 1 到 2423
k2 位数小时 (24 小时制) 从 1 到 24,不加 023
a/Aam 或 pmpm
hh2 位数小时 (12 小时制)11
mm2 位数字分钟22
ss2 位数秒40
s2 位秒,不带前导零40
S1 位数毫秒1
SS2 位毫秒12
SSS3 位数毫秒123
Z时区+02:00
xUNIX 时间戳 (以毫秒为单位)1410432140575

2、计算相对时间

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

3、日历时间

moment().subtract(10, 'days').calendar(); // 2022/05/29
moment().subtract(6, 'days').calendar();  // 上星期四16:38
moment().subtract(3, 'days').calendar();  // 上星期日16:38
moment().subtract(1, 'days').calendar();  // 昨天16:38
moment().calendar();                      // 今天16:38
moment().add(1, 'days').calendar();       // 明天16:38
moment().add(3, 'days').calendar();       // 下星期六16:38
moment().add(10, 'days').calendar();      // 2022/06/18

4、多语言支持

moment.locale();         // zh-cn
moment().format('LT');   // 16:38
moment().format('LTS');  // 16:38:52
moment().format('L');    // 2022/06/08
moment().format('l');    // 2022/6/8
moment().format('LL');   // 2022年6月8日
moment().format('ll');   // 2022年6月8日
moment().format('LLL');  // 2022年6月8日下午4点38分
moment().format('lll');  // 2022年6月8日 16:38
moment().format('LLLL'); // 2022年6月8日星期三下午4点38分
moment().format('llll'); // 2022年6月8日星期三 16:38

5、还有更多其他好用的函数

to()

var a = moment([2007, 0, 28]);
var b = moment([2007, 0, 29]);
a.to(b);                     // "1 天内"
a.to([2007, 0, 29]);         // "1 天内"
a.to(new Date(2007, 0, 29)); // "1 天内"
a.to("2007-01-29");          // "1 天内"


diff()

var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1


startOf() //通过将原始的 moment 设置为时间单位的开头来对其进行更改。

moment().startOf('year');    // 设置为今年一月1日上午 12:00
moment().startOf('month');   // 设置为本月1日上午 12:00
moment().startOf('quarter');  // 设置为当前季度的开始,即每月的第一天上午 12:00
moment().startOf('week');    // 设置为本周的第一天上午 12:00
moment().startOf('isoWeek'); // 根据 ISO 8601 设置为本周的第一天上午 12:00
moment().startOf('day');     // 设置为今天上午 12:00
moment().startOf('date');     // 设置为今天上午 12:00
moment().startOf('hour');    // 设置为当前时间,但是 0 分钟、0 秒钟、0 毫秒
moment().startOf('minute');  // 设置为当前时间,但是 0 秒钟、0 毫秒
moment().startOf('second');  // 与 moment().milliseconds(0); 相同

更多请查看文档:http://momentjs.cn/docs/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值