转化毫秒成时间,大家都怎么写?

177 阅读1分钟

都说程序员的按钮就三个,C,V和 坤键

我今天也图省事在网上搜转化的代码,可惜搜到的都不称心。

有这样的

// 用户输入任意秒数, 函数计算该毫秒数对应的时分秒, 并返回
    let second = prompt('输入秒数:')
    function getTime(time) {
        // 转换为式分秒
        let h = parseInt(time / 60 / 60 % 24)
        h = h < 10 ? '0' + h : h
        let m = parseInt(time / 60 % 60)
         m = m < 10 ? '0' + m : m
        let s = parseInt(time % 60)
         s = s < 10 ? '0' + s : s
        // 作为返回值返回
        return [h, m, s]
    }
    // 传入用户输入的数据
    let res = getTime(second)
    console.log(`输入的秒数是${second}:,转换后是${res[0]}${res[1]}${res[2]}秒`)
————————————————
版权声明:本文为CSDN博主「奄奄一息的一条咸鱼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46682277/article/details/122220956

也有这样的

timeFormat(time){
let newTime,hour,minite,seconds;
if(time >= 3600){
hour = parseInt(time/3600) < 10 ? '0' + parseInt(time/3600) : parseInt(time/3600) ;
minite = parseInt(time%60/60) < 10 ? '0' + parseInt(time%60/60):parseInt(time%60/60);
seconds = time%3600 < 10 ? '0' + time%3600 : time%3600;
newTime = hour + ':' + minite + ':' + seconds;
}else if(time >= 60 && time < 3600){
minite = parseInt(time/60) < 10 ? '0' + parseInt(time/60) : parseInt(time/60);
seconds = time%60 < 10 ? '0' + time%60 : time%60;
newTime = minite + ':' + seconds;
}else if(time < 60 ){
seconds = time < 10 ? '0' + time : time;
newTime = '00:'+ seconds;
}
return newTime;
}
-----------------------------------
©著作权归作者所有:来自51CTO博客作者小旭依然的原创作品,请联系作者获取转载授权,否则将追究法律责任
js 秒转换成时分秒
https://blog.51cto.com/xuyran/1966553

好不容易搜到一个简短一点的,但是又有点怪 js将秒转化为时分秒 - 简书 (jianshu.com)

function formatSeconds(value) {
  let result = parseInt(value)
  let h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600)
  let m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60))
  let s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60))
  result = `${h}:${m}:${s}`
  return result
}

也搜到了这个大哥写的 js如何秒数转化为时分秒 - 掘金 (juejin.cn)

最终,我还是选择了自己写。如果我是你同事,你会喷我吗?

function GetAccurateTimeStr(msecs: number|string) {
    const 进制 = [1000, 60, 60, 24, 30, 12, 60]
    const 单位 = ['', '秒', '分', '时', '天', '月', '年', '甲子']
    let result: Array<string | number> = []
    进制.reduce((pro, cur, i) => {
        let target = pro % cur
        if (target != 0) {
            result.push(单位[i], target)
        }
        return (pro - target) / cur
    }, Number(msecs))

    return result.reverse().join('')
}