r/programming • u/OtherwisePush6424 • 10h ago
Your JS Date Is Lying to You - the traps that keep shipping to production
blog.gaborkoos.comMost JavaScript developers have been burned by Date at least once: a report that's off by a day, an invoice that lands in the wrong month, a timezone bug that only appears in certain regions.
A writeup on the main failure modes with production examples:
new Date('2026-07-21')parsed as UTC, displayed as local: date shifts by a day west of UTC- constructor months are 0-based, so
new Date(2026, 7, 21)is August - every
set*method mutates in place, including across shared references - "add one month" and "add 30 days" are not the same operation and can diverge by days near month boundaries
JSON.stringifydrops timezone context silently
Each section also covers what safe Date patterns look like for code that can't migrate yet, and where Temporal fixes the design rather than just adding a wrapper.