Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m51s
43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
function pad(num) {
|
|
return String(num).padStart(2, '0');
|
|
}
|
|
|
|
export function formatDateTime(input) {
|
|
if (!input) return '';
|
|
const d = input instanceof Date ? input : new Date(input);
|
|
if (Number.isNaN(d.getTime())) return '';
|
|
const day = pad(d.getDate());
|
|
const month = pad(d.getMonth() + 1);
|
|
const year = d.getFullYear();
|
|
const h = pad(d.getHours());
|
|
const m = pad(d.getMinutes());
|
|
const s = pad(d.getSeconds());
|
|
return `${day}.${month}.${year} ${h}:${m}:${s}`;
|
|
}
|
|
|
|
export function formatRelative(input) {
|
|
if (!input) return '';
|
|
const d = input instanceof Date ? input : new Date(input);
|
|
if (Number.isNaN(d.getTime())) return '';
|
|
const diffMs = Date.now() - d.getTime();
|
|
const sec = Math.floor(diffMs / 1000);
|
|
if (sec < 5) return 'только что';
|
|
if (sec < 60) return `${sec} сек назад`;
|
|
const min = Math.floor(sec / 60);
|
|
if (min < 60) return `${min} мин назад`;
|
|
const hr = Math.floor(min / 60);
|
|
if (hr < 24) return `${hr} ч назад`;
|
|
const days = Math.floor(hr / 24);
|
|
return `${days} дн назад`;
|
|
}
|
|
|
|
export function formatDateTimeWithRelative(input) {
|
|
const abs = formatDateTime(input);
|
|
const rel = formatRelative(input);
|
|
if (!abs && !rel) return '';
|
|
if (abs && rel) return `${abs} (${rel})`;
|
|
return abs || rel;
|
|
}
|
|
|
|
|