秒数(非时间戳)转化为天、时、分、秒各种格式

新版的

参数
参数类型含义
valuenumber需转化的时间
typestring函数的typeDictionary中指定的type
示例

在这里插入图片描述

函数
function secondsFilter(value, type) {
                value = parseInt(value)
                let secondTime = 0 // 秒
                let minuteTime = 0 // 分
                let hourTime = 0 // 小时
                let dayTime = 0 // 天
                let result = '' //返回结果
                let sStr // 秒拼接字符串
                let mStr // 分拼接字符串
                let hStr // 时拼接字符串
                let dStr // 天拼接字符串
                let typeDictionary = [// 输出类型配置字典
                    {type: 'china', list: ['天', '时', '分', '秒']}, // 文字单位
                    {type: 'chinaNoSecond', list: ['天', '时', '分', '']}, // 文字单位无秒数
                    {type: 'alphabet', list: ['d', 'h', 'm', 's']}, //字母单位
                    {type: 'alphabetNoSecond', list: ['d', 'h', 'm', '']}, //字母单位无秒数
                    {type: 'colon', list: ['', ':', ':', '']}, // 冒号单位
                    {type: 'quotes', list: ['', ':', '\'', '\"']} // 引号单位
                ]
                let tempIndex = typeDictionary.findIndex(item => item.type === type)
                tempIndex = tempIndex === -1 ? 0 : tempIndex // 默认使用字典第一条
                if (value < 0) {
                    return
                } else if (value < 60) {
                    secondTime = value
                } else if (value < 3600) {
                    secondTime = value % 60
                    minuteTime = Math.floor(value / 60)
                } else if (value < 3600 * 24) {
                    secondTime = value % 60
                    minuteTime = Math.floor(value / 60) % 60
                    hourTime = Math.floor(value / (60 * 60))
                } else {
                    secondTime = value % 60
                    minuteTime = Math.floor(value / 60) % 60
                    hourTime = Math.floor(value / (60 * 60)) % 24
                    dayTime = Math.floor(value / (60 * 60 * 24))
                }
                secondTime = secondTime > 9 ? secondTime : secondTime > 0 ? '0' + secondTime : 0
                minuteTime = minuteTime > 9 ? minuteTime : minuteTime > 0 ? '0' + minuteTime : 0
                hourTime = hourTime > 0 ? hourTime : 0
                dayTime = dayTime > 0 ? dayTime : 0
                
                sStr = secondTime !== 0 ? secondTime + typeDictionary[tempIndex].list[3] : ''
                mStr = minuteTime !== 0 ? minuteTime + typeDictionary[tempIndex].list[2] : ''
                hStr = hourTime !== 0 ? hourTime + typeDictionary[tempIndex].list[1] : ''
                dStr = dayTime !== 0 ? dayTime + typeDictionary[tempIndex].list[0] : ''
                
                if(value === 0){
                    sStr = '0'+ typeDictionary[tempIndex].list[3]
                }
                switch (type) {
                    case 'colon':
                        sStr = secondTime === 0 ? '00' + typeDictionary[tempIndex].list[3] : sStr
                        mStr = minuteTime === 0 ? '00' + typeDictionary[tempIndex].list[2] : mStr
                        hStr = (hourTime !== 0 || dayTime !== 0) ? (parseInt(hourTime) + parseInt(dayTime) * 24) + typeDictionary[tempIndex].list[1] : ''
                        dStr = ''
                        break;
                    case 'quotes':
                        hStr = (hourTime !== 0 || dayTime !== 0) ? (parseInt(hourTime) + parseInt(dayTime) * 24) + typeDictionary[tempIndex].list[1] : ''
                        dStr = ''
                        break;
                    case 'chinaNoSecond':
                        sStr = ''
                        break;
                    case 'alphabetNoSecond':
                        sStr = ''
                        break;
                    default:
                        break;
                }
                result = dStr + hStr + mStr + sStr
                return result
            }

下面是旧版
》》》》》》》》》》》》》》》》》
使用方式如下
在这里插入图片描述
函数

function timeType (t) {
        t = Math.floor(t)
        var d = 0 , h = 0, m = 0 , s = 0
        if (t < 0) {
          return
        } else if (t < 60) {
          s = t
        } else if ( t < 3600) {
          s = t % 60
          m = Math.floor(t / 60)
        } else if (t < 3600 * 24 ) {
          s = t % 60
          m = Math.floor(t / 60) % 60
          h = Math.floor(t / (60 * 60))
        } else{
          s = t % 60
          m = Math.floor(t / 60) % 60
          h = Math.floor(t / (60 * 60)) % 24
          d = Math.floor(t / (60 * 60 * 24))
        }
        /** 
        这部分是上面判断部分简写
        t >= 3600 * 24 ? (s = t % 60, m = Math.floor(t / 60) % 60,h = Math.floor(t / (60 * 60)) % 24,d = Math.floor(t / (60 * 60 * 24))):
        t >= 3600?(s = t % 60,m = Math.floor(t / 60) % 60,h = Math.floor(t / (60 * 60))):
        t >=60?(s = t % 60,m = Math.floor(t / 60)):
        t>0?s = t:''
        **/
      
        s = s > 9 ? s : '0' + s
        m = m > 9 ? m : '0' + m
        h = h > 9 ? h : '0' + h
        d = d > 9 ? d : '0' + d
        return d + '天' + h + '时' + m + '分' + s + '秒'
      }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值