37 lines
624 B
Go
37 lines
624 B
Go
![]() |
package utils
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
// HumanTimeSecond 格式化秒数
|
||
|
func HumanTimeSecond(s int64, separator ...string) string {
|
||
|
const (
|
||
|
Minute = 60
|
||
|
Hour = 60 * Minute
|
||
|
Day = 24 * Hour
|
||
|
)
|
||
|
var d, h, m int64
|
||
|
|
||
|
d = s / Day
|
||
|
s = s % Day
|
||
|
h = s / Hour
|
||
|
s = s % Hour
|
||
|
m = s / Minute
|
||
|
s = s % Minute
|
||
|
|
||
|
var sep string
|
||
|
if len(separator) == 1 {
|
||
|
sep = separator[0]
|
||
|
}
|
||
|
|
||
|
if d > 0 {
|
||
|
return fmt.Sprintf("%dd%s%dh%s%dm%s%ds", d, sep, h, sep, m, sep, s)
|
||
|
} else if h > 0 {
|
||
|
return fmt.Sprintf("%dh%s%dm%s%ds", h, sep, m, sep, s)
|
||
|
} else if m > 0 {
|
||
|
return fmt.Sprintf("%dm%s%ds", m, sep, s)
|
||
|
}
|
||
|
return fmt.Sprintf("%ds", s)
|
||
|
}
|