mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
move common time functions
This commit is contained in:
@@ -18,23 +18,38 @@ export const formatLocalDateTime = (date: Date) => {
|
||||
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().slice(0, -1).substr(0, 19);
|
||||
};
|
||||
|
||||
export const formatDuration = (duration: number) => {
|
||||
const { days, hours, minutes, seconds } = parseMilliseconds(duration * 1000);
|
||||
var formatted = '';
|
||||
export const pluralize = (count: number, noun: string) =>
|
||||
`${Intl.NumberFormat().format(count)} ${noun}${count !== 1 ? 's' : ''}`;
|
||||
|
||||
export const formatDurationMin = (duration_min: number) => {
|
||||
const { days, hours, minutes } = parseMilliseconds(duration_min * 60000);
|
||||
let formatted = '';
|
||||
if (days) {
|
||||
formatted += pluralize(days, 'day');
|
||||
formatted += pluralize(days, 'day') + ' ';
|
||||
}
|
||||
if (formatted || hours) {
|
||||
formatted += pluralize(hours, 'hour');
|
||||
if (hours) {
|
||||
formatted += pluralize(hours, 'hour') + ' ';
|
||||
}
|
||||
if (formatted || minutes) {
|
||||
formatted += pluralize(minutes, 'minute');
|
||||
}
|
||||
if (formatted || seconds) {
|
||||
formatted += pluralize(seconds, 'second');
|
||||
if (minutes) {
|
||||
formatted += pluralize(minutes, 'minute') + ' ';
|
||||
}
|
||||
return formatted;
|
||||
};
|
||||
|
||||
const pluralize = (count: number, noun: string, suffix: string = 's') =>
|
||||
` ${count} ${noun}${count !== 1 ? suffix : ''} `;
|
||||
export const formatDurationSec = (duration_sec: number) => {
|
||||
if (duration_sec === 0) {
|
||||
return ' ';
|
||||
}
|
||||
const roundTowardsZero = duration_sec > 0 ? Math.floor : Math.ceil;
|
||||
return (
|
||||
', ' +
|
||||
roundTowardsZero(duration_sec / 86400) +
|
||||
'd ' +
|
||||
(roundTowardsZero(duration_sec / 3600) % 24) +
|
||||
'h ' +
|
||||
(roundTowardsZero(duration_sec / 60) % 60) +
|
||||
'm ' +
|
||||
(roundTowardsZero(duration_sec) % 60) +
|
||||
's'
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user