I came across a little gotcha with the Date constructor recently. The
new Date() constructor takes a unix timestamp or a dateString, which according to mozilla should allow a version of ISO8601.
Here’s the issue
If my timezone is Easter Standard Time (US east coast) and I create a new date without a time zone.
My browser actually assumes the date is in UTC timezone and returns.
Mon Jan 28 2019 19:00:00 GMT-0500 (Eastern Standard Time)
Appending a time to the date string will force the browser to parse it the local time zone of the browser.
new Date('2019-01-29' + 'T00:00:00');
or if you are using moment js, you can pass your date string directly to moment.
Both solutions correctly return
Tue Jan 29 2019 00:00:00 GMT-0500 (Eastern Standard Time)