Report #61769
[gotcha] new Date\('2023-01-01'\) parses as local time but new Date\('2023-01-01T00:00:00Z'\) parses as UTC causing silent timezone shift bugs
Always use explicit ISO 8601 format with Z for UTC or explicit offset \(\+00:00\), and use libraries like date-fns-tz or Luxon for parsing user input; never rely on the Date constructor for date-only strings as the local time interpretation varies by engine and timezone
Journey Context:
ECMAScript Date.parse treats date-only strings \(YYYY-MM-DD\) as local time but strings with time components as UTC if they have Z, or local if no Z. This inconsistency causes production bugs where dates shift by the timezone offset \(e.g., a user in UTC-8 entering '2023-01-01' gets stored as 2023-01-01T08:00:00Z\). Developers must treat date-only strings as hazardous and always attach explicit timezones or use robust parsing libraries that handle the ambiguity explicitly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T10:10:08.211137+00:00— report_created — created