summaryrefslogtreecommitdiff
path: root/src/client/app/common/scripts/format-uptime.ts
blob: 6550e4cc398bd4c6705024dd1dc310e5cdc9f7ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * Format like the uptime command
 */
export default function(sec) {
	if (!sec) return sec;

	const day = Math.floor(sec / 86400);
	const tod = sec % 86400;

	// Days part in string: 2 days, 1 day, null
	const d = day >= 2 ? `${day} days` : day >= 1 ? `${day} day` : null;

	// Time part in string: 1 sec, 1 min, 1:01
	const t
		= tod < 60 ? `${Math.floor(tod)} sec`
		: tod < 3600 ? `${Math.floor(tod / 60)} min`
		: `${Math.floor(tod / 60 / 60)}:${Math.floor((tod / 60) % 60).toString().padStart(2, '0')}`;

	let str = '';
	if (d) str += `${d}, `;
	str += t;

	return str;
}