前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这个需求确实有点奇葩了...

这个需求确实有点奇葩了...

作者头像
程序员老鱼
发布2022-12-02 11:13:54
2780
发布2022-12-02 11:13:54
举报
文章被收录于专栏:前端实验室

大家好,我是前端实验室的大师兄!

相信大家都听说过 day.js 这些时间转换工具,一般的时间格式转换它都能处理,但是总有那些不按套路出牌的设计,非要把时间段转化为毫秒,什么2天转化为毫秒,俩小时转化为毫秒,各种格式都要转化为毫秒

奇葩需求年年有,尤其今年特别多

今天就给大家推荐一个毫秒转化工具ms

ms

从它的命名就可以看出它的专一性和特点:可以轻松地将各种时间格式转换为毫秒。

特点

  • 支持 TypeScript
  • 适用于Node.js和浏览器
  • 如果提供带数字的ms,则返回带有单位的字符串
  • 如果提供了包含数字的字符串,则将其作为数字返回(例如:100返回'100')
  • 如果您传递带有数字和有效单位的字符串,则返回等效毫秒数

使用

安装

代码语言:javascript
复制
npm i ms

使用:

如果你使用TypeScript开发,可以从ms里直接导出数据类型,使用一个类型断言来强制一个string

代码语言:javascript
复制
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 ,按提示操作即可进群。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ms
    • 特点
      • 使用
        • 最后
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档