大家好,我是前端实验室
的大师兄!
相信大家都听说过 day.js
这些时间转换工具,一般的时间格式转换它都能处理,但是总有那些不按套路出牌的设计,非要把时间段转化为毫秒,什么2天转化为毫秒,俩小时转化为毫秒,各种格式都要转化为毫秒
奇葩需求年年有,尤其今年特别多
今天就给大家推荐一个毫秒转化工具ms
ms
从它的命名就可以看出它的专一性和特点:可以轻松地将各种时间格式转换为毫秒。
特点
- 支持 TypeScript
- 适用于Node.js和浏览器
- 如果提供带数字的ms,则返回带有单位的字符串
- 如果提供了包含数字的字符串,则将其作为数字返回(例如:100返回'100')
- 如果您传递带有数字和有效单位的字符串,则返回等效毫秒数
使用
安装
代码语言:javascript复制npm i ms
使用:
如果你使用TypeScript开发,可以从ms
里直接导出数据类型,使用一个类型断言来强制一个string
import ms, { StringValue } from 'ms';
// 使用导出的类型
function example(value: StringValue) {
ms(value);
}
// 此函数只接受与“ms”兼容的字符串
example('1 h');
各种类型时间转化为毫秒
代码语言:javascript复制ms('2 days') // 172800000
ms('1d') // 86400000
ms('10h') // 36000000
ms('2.5 hrs') // 9000000
ms('2h') // 7200000
ms('1m') // 60000
ms('5s') // 5000
ms('1y') // 31557600000
ms('100') // 100
ms('-3 days') // -259200000
ms('-1h') // -3600000
ms('-200') // -200
也可以把毫秒转化为时间
代码语言:javascript复制//返回缩写结果
ms(60000) // "1m"
ms(2 * 60000) // "2m"
ms(-3 * 60000) // "-3m"
ms(ms('10 hours')) // "10h"
//传入一个参数,返回完整结果
ms(60000, { long: true }) // "1 minute"
ms(2 * 60000, { long: true }) // "2 minutes"
ms(-3 * 60000, { long: true }) // "-3 minutes"
ms(ms('10 hours'), { long: true }) // "10 hours"
github链接:https://github.com/vercel/ms
最后
欢迎加入前端实验室读者交流群,群里有不少技术大神,不定时会分享一些技术要点,更有一些资源收藏爱好者会分享一些优质的学习资料。吃瓜、摸鱼、白嫖技术就等你了~
进群方式:在下方公众号后台,回复 111
,按提示操作即可进群。