From fa36e54d878a3274f7728eb0b84c351b33f3c6ed Mon Sep 17 00:00:00 2001 From: Ken D'Ambrosio Date: Sat, 9 May 2026 15:53:18 +0000 Subject: Fix taken_at timezone: store and display as camera local time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EXIF DateTimeOriginal has no timezone — it's the camera's wall clock. Storing it via .iso8601 attached +00:00 (server TZ), causing browsers to shift the time to their local zone when parsing. Switch to strftime('%Y-%m-%dT%H:%M:%S') so no offset is written. JS strips any existing +00:00 suffix from already-stored values so old data is also displayed correctly. Co-Authored-By: Claude Sonnet 4.6 --- public/js/album.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'public') diff --git a/public/js/album.js b/public/js/album.js index 9e921d7..fe492af 100644 --- a/public/js/album.js +++ b/public/js/album.js @@ -38,7 +38,7 @@ function lbBuildInfo(e) { const rows = []; if (e.name !== e.title) rows.push(['File', e.name]); if (e.taken_at) { - const d = new Date(e.taken_at); + const d = new Date(e.taken_at.replace(/[+-]\d{2}:\d{2}$|Z$/, '')); rows.push(['Date', d.toLocaleString(undefined, { dateStyle: 'medium', timeStyle: 'short' })]); } if (e.width && e.height) rows.push(['Dimensions', `${e.width} × ${e.height}`]); -- cgit v1.2.3