Found out about this weird behaviour today while debugging my app.
new Date("1896-01-01T00:00:00+0800")
Wed Jan 01 1896 00:00:00 GMT+0800 (Australian Western Standard Time)
new Date("1895-01-01T00:00:00+0800")
Mon Dec 31 1894 23:43:24 GMT+0743 (Australian Western Standard Time)
Basically all dates before 1986 have this weird timezone GMT+0743 as Australian Western Standard Time whereas it should be GMT+0800. This causes all dates before then to get converted to one day before.
Tested with Chrome and Firefox and the behaviour is the same.
Anybody know why this happens?