1 |
|
2 | "use strict";
|
3 |
|
4 | function getEnvLocale(env = process.env) {
|
5 | return env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE || '';
|
6 | }
|
7 |
|
8 | const locale = getEnvLocale().replace(/[.:].*/, '');
|
9 |
|
10 | const units = locale.toLowerCase().startsWith("zh") ?
|
11 | [
|
12 | { name: "纳秒", factor: 1 },
|
13 | { name: "微秒", factor: 1e3 },
|
14 | { name: "毫秒", factor: 1e6 },
|
15 | { name: "秒", factor: 1e9 },
|
16 | { name: "分", factor: 6e10 },
|
17 | { name: "小时", factor: 36e11 }
|
18 | ]
|
19 | : [
|
20 | { name: " ns", factor: 1 },
|
21 | { name: " us", factor: 1e3 },
|
22 | { name: " ms", factor: 1e6 },
|
23 | { name: " s", factor: 1e9 },
|
24 | { name: " min", factor: 6e10 },
|
25 | { name: " hr", factor: 36e11 }
|
26 | ]
|
27 |
|
28 | function prettyTime(time, dec = 2) {
|
29 | for (let i = 0; i < units.length; i++) {
|
30 | const { name, factor } = units[i], scaledTime = time / factor;
|
31 | const maxVal = units[i + 1] && units[i + 1].factor / factor;
|
32 | const roundedTime = Number((scaledTime).toFixed(dec));
|
33 |
|
34 | if (!maxVal || Math.abs(roundedTime) < maxVal) {
|
35 | return Number((scaledTime).toFixed(dec)) + name
|
36 | }
|
37 | }
|
38 | }
|
39 | module.exports = prettyTime; |
\ | No newline at end of file |