新版的
参数
参数 | 类型 | 含义 |
---|---|---|
value | number | 需转化的时间 |
type | string | 函数的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 + '秒'
}