Skip to content

Commit c510162

Browse files
committed
Fix duration formatting in sist2-admin
1 parent f5c6645 commit c510162

File tree

1 file changed

+36
-10
lines changed

1 file changed

+36
-10
lines changed

sist2-admin/frontend/src/views/Tasks.vue

+36-10
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,39 @@ import TaskListItem from "@/components/TaskListItem";
4040
import Sist2AdminApi from "@/Sist2AdminApi";
4141
import moment from "moment";
4242
43+
const DAY = 3600 * 24;
44+
const HOUR = 3600;
45+
const MINUTE = 60;
46+
47+
function humanDuration(sec_num) {
48+
sec_num = sec_num / 1000;
49+
const days = Math.floor(sec_num / DAY);
50+
sec_num -= days * DAY;
51+
const hours = Math.floor(sec_num / HOUR);
52+
sec_num -= hours * HOUR;
53+
const minutes = Math.floor(sec_num / MINUTE);
54+
sec_num -= minutes * MINUTE;
55+
const seconds = Math.floor(sec_num);
56+
57+
if (days > 0) {
58+
return `${days} days ${hours}h ${minutes}m ${seconds}s`;
59+
}
60+
61+
if (hours > 0) {
62+
return `${hours}h ${minutes}m ${seconds}s`;
63+
}
64+
65+
if (minutes > 0) {
66+
return `${minutes}m ${seconds}s`;
67+
}
68+
69+
if (seconds > 0) {
70+
return `${seconds}s`;
71+
}
72+
73+
return "<0s";
74+
}
75+
4376
export default {
4477
name: 'Tasks',
4578
components: {TaskListItem},
@@ -100,17 +133,10 @@ export default {
100133
})
101134
},
102135
taskDuration(task) {
103-
const start = moment(task.started);
104-
const end = moment(task.ended);
105-
106-
let duration = moment.utc(end.diff(start)).format("HH[h] mm[m] ss[s]");
107-
108-
duration = duration.replace("00h ", "");
109-
duration = duration.replace(/^00m /, "");
110-
duration = duration.replace(/00s/, "<1s");
111-
duration = duration.replace(/^0/, "");
136+
const start = moment.utc(task.started);
137+
const end = moment.utc(task.ended);
112138
113-
return duration;
139+
return humanDuration(end.diff(start))
114140
}
115141
}
116142
}

0 commit comments

Comments
 (0)