Turn seconds into a human-readable timestamp
This commit is contained in:
parent
bbc3d5af82
commit
d252be0b18
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# The variables are checked dynamically
|
||||
# shellcheck disable=SC2034
|
||||
seconds() {
|
||||
local day hour minute second span time
|
||||
(( day = $1 / 60 / 60 / 24 ))
|
||||
(( hour = $1 / 60 / 60 % 24 ))
|
||||
(( minute = $1 / 60 % 60 ))
|
||||
(( second = $1 % 60 ))
|
||||
|
||||
for span in day hour minute second; do
|
||||
if (( ${!span} )); then
|
||||
if [[ $time ]]; then
|
||||
time+=", "
|
||||
fi
|
||||
|
||||
time+="${!span} $span"
|
||||
|
||||
if (( ${!span} > 1 )); then
|
||||
time+=s
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
printf %s "$time"
|
||||
|
||||
if [[ -t 1 ]]; then
|
||||
printf '\n'
|
||||
fi
|
||||
}
|
||||
|
||||
seconds "${1-3628800}"
|
Loading…
Reference in New Issue