webui: fix relative timestamps (seconds, not milliseconds)

f.date/f.ago assumed JS milliseconds, but the backend emits Unix epoch
seconds everywhere (created_at, feed lastUpdate, rule lastMatch, …), so
every real timestamp rendered as ~20607 days ago (now - ~1.78e9 ms).
Treat the formatter input as seconds. Search results show the indexer's
pubDate string directly rather than mis-parsing it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ookami125 2026-06-24 01:25:43 -04:00
parent 2df3f11cf4
commit d1b90cfdcb
2 changed files with 8 additions and 7 deletions

View file

@ -44,15 +44,16 @@ export function ratio(r) {
return r.toFixed(2);
}
export function date(ms) {
if (!ms || ms < 0) return '';
const d = new Date(ms);
// Timestamps from the backend are Unix epoch SECONDS; 0/negative means "unset".
export function date(sec) {
if (!sec || sec < 0) return '';
const d = new Date(sec * 1000);
return d.toLocaleString(undefined, { year: '2-digit', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' });
}
export function ago(ms) {
if (!ms || ms < 0) return '';
const s = (Date.now() - ms) / 1000;
export function ago(sec) {
if (!sec || sec < 0) return '';
const s = Date.now() / 1000 - sec;
if (s < 60) return 'just now';
if (s < 3600) return `${Math.floor(s / 60)}m ago`;
if (s < 86400) return `${Math.floor(s / 3600)}h ago`;