Hacker News new | ask | show | jobs
by PokerFacowaty 395 days ago
I recently spent 2 hours on finding the bug, precisely because JS can't comprehend dates/times without a Unix timestamp underneath. I'd take a date from Postgres as e.x. "2025-05-24" and the first time somewhere deep in the package I was using, when JS encountered that, it needed to add a time (midnight, that's sane) and timezone (local time :) ). I was trying to use UTC everywhere and since the read dates had midnight of UTC+2 as the time, they were all a day behind in UTC.

Special shoutouts to the author of node-postgres saying the PG's date type is better not used for dates in this case.[1] I love programming.

[1] https://node-postgres.com/features/types#date--timestamp--ti...

1 comments

> it needed to add a time (midnight, that's sane)

Is it sane? Is midnight at the start of a day, or the end of it? I'd think noon would be less ambiguous, and significantly less prone to these timezone issues (although this may not be a benefit).

Indeed it is not sane. Languages should provide a separate Day type to operate on dates without times. Forcing everything to use dates with times and timezones causes bugs in applications that don't need times.
ISO 8601-1:2019/Amd 1:2022

Midnight at the start of the day: 00:00:00

Midnight at the end of the day: 24:00:00