@@ -40,7 +40,7 @@ export const stringifyVdiskId = (id?: TVDiskID | TVSlotId) => {
40
40
return id ? Object . values ( id ) . join ( '-' ) : '' ;
41
41
} ;
42
42
43
- export const formatUptime = ( seconds : number ) => {
43
+ export const formatUptimeInSeconds = ( seconds : number ) => {
44
44
const days = Math . floor ( seconds / DAY_IN_SECONDS ) ;
45
45
const remain = seconds % DAY_IN_SECONDS ;
46
46
@@ -52,9 +52,41 @@ export const formatUptime = (seconds: number) => {
52
52
} ;
53
53
54
54
export const formatMsToUptime = ( ms ?: number ) => {
55
- return ms && formatUptime ( ms / 1000 ) ;
55
+ return ms && formatUptimeInSeconds ( ms / 1000 ) ;
56
56
} ;
57
57
58
+ export function getUptimeFromDateFormatted ( dateFrom ?: number | string , dateTo ?: number | string ) {
59
+ let diff = calcTimeDiffInSec ( dateFrom , dateTo ) ;
60
+
61
+ // Our time and server time could differ a little
62
+ // Prevent wrong negative uptime values
63
+ diff = diff < 0 ? 0 : diff ;
64
+
65
+ return formatUptimeInSeconds ( diff ) ;
66
+ }
67
+
68
+ export function getDowntimeFromDateFormatted ( dateFrom ?: number | string , dateTo ?: number | string ) {
69
+ let diff = calcTimeDiffInSec ( dateFrom , dateTo ) ;
70
+
71
+ // Our time and server time could differ a little
72
+ // Prevent wrong negative uptime values
73
+ diff = diff < 0 ? 0 : diff ;
74
+
75
+ const formattedUptime = formatUptimeInSeconds ( diff ) ;
76
+
77
+ // Do not add sign to 0 values to prevent -0:00:00 uptime
78
+ return diff === 0 ? formattedUptime : '-' + formattedUptime ;
79
+ }
80
+
81
+ export function calcTimeDiffInSec (
82
+ dateFrom ?: number | string ,
83
+ dateTo : number | string = new Date ( ) . getTime ( ) ,
84
+ ) {
85
+ const diffMs = Number ( dateTo ) - Number ( dateFrom ) ;
86
+
87
+ return diffMs / 1000 ;
88
+ }
89
+
58
90
export function formatStorageValues (
59
91
value ?: number ,
60
92
total ?: number ,
@@ -175,16 +207,6 @@ export const formatTimestamp = (value?: string | number, defaultValue = '') => {
175
207
return formattedData ?? defaultValue ;
176
208
} ;
177
209
178
- export const calcUptimeInSeconds = ( milliseconds : number | string ) => {
179
- const currentDate = new Date ( ) ;
180
- const diff = currentDate . getTime ( ) - Number ( milliseconds ) ;
181
- return diff <= 0 ? 0 : diff / 1000 ;
182
- } ;
183
-
184
- export const calcUptime = ( milliseconds ?: number | string ) => {
185
- return formatUptime ( calcUptimeInSeconds ( Number ( milliseconds ) ) ) ;
186
- } ;
187
-
188
210
export function getStringifiedData ( value : unknown ) {
189
211
if ( value === undefined ) {
190
212
return '' ;
0 commit comments