Files
eufy-security-client-dz/node_modules/date-and-time/esm/plugin/timespan.mjs
2025-11-11 00:04:55 -06:00

76 lines
2.6 KiB
JavaScript

/**
* @preserve date-and-time.js plugin
* @preserve timespan
*/
var plugin = function (date) {
var timeSpan = function (date1, date2) {
var milliseconds = function (dt, time) {
dt.S = time;
return dt;
},
seconds = function (dt, time) {
dt.s = time / 1000 | 0;
return milliseconds(dt, Math.abs(time) % 1000);
},
minutes = function (dt, time) {
dt.m = time / 60000 | 0;
return seconds(dt, Math.abs(time) % 60000);
},
hours = function (dt, time) {
dt.H = time / 3600000 | 0;
return minutes(dt, Math.abs(time) % 3600000);
},
days = function (dt, time) {
dt.D = time / 86400000 | 0;
return hours(dt, Math.abs(time) % 86400000);
},
format = function (dt, formatString) {
var pattern = date.compile(formatString);
var str = '';
for (var i = 1, len = pattern.length, token, value; i < len; i++) {
token = pattern[i].charAt(0);
if (token in dt) {
value = '' + Math.abs(dt[token]);
while (value.length < pattern[i].length) {
value = '0' + value;
}
if (dt[token] < 0) {
value = '-' + value;
}
str += value;
} else {
str += pattern[i].replace(/\[(.*)]/, '$1');
}
}
return str;
},
delta = date1.getTime() - date2.getTime();
return {
toMilliseconds: function (formatString) {
return format(milliseconds({}, delta), formatString);
},
toSeconds: function (formatString) {
return format(seconds({}, delta), formatString);
},
toMinutes: function (formatString) {
return format(minutes({}, delta), formatString);
},
toHours: function (formatString) {
return format(hours({}, delta), formatString);
},
toDays: function (formatString) {
return format(days({}, delta), formatString);
}
};
};
var name = 'timespan';
date.plugin(name, { extender: { timeSpan: timeSpan } });
return name;
};
export { plugin as default };