@@ -40,6 +40,39 @@ import TaskListItem from "@/components/TaskListItem";
40
40
import Sist2AdminApi from " @/Sist2AdminApi" ;
41
41
import moment from " moment" ;
42
42
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
+
43
76
export default {
44
77
name: ' Tasks' ,
45
78
components: {TaskListItem},
@@ -100,17 +133,10 @@ export default {
100
133
})
101
134
},
102
135
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 );
112
138
113
- return duration;
139
+ return humanDuration ( end . diff (start))
114
140
}
115
141
}
116
142
}
0 commit comments