Files
router-lists-ui/frontend/src/lib/datetime.js
T

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;
}