Wrong date with angular material's date picker

后端 未结 4 548
孤独总比滥情好
孤独总比滥情好 2021-01-04 09:00

I use the datepicker to pick a date and send it to the server.

When I log the JS value I get the correct result:

Tue Mar 22 2016 00:00:00 GMT+0100 (M         


        
4条回答
  •  悲哀的现实
    2021-01-04 09:35

    Those two strings represent the same time. One is in UTC, i.e. GMT +0, which you can see from the Z ending. The other is in a different timezone, specifically GMT +1 hour.

    If you had javascript date objects for both strings, and turned them into integers, i.e. seconds passed since Jan 1, 1970, UTC, you'd find them identical. They represent the same instant but in two different geographic locations.

    var d1 = new Date('Tue Mar 22 2016 00:00:00 GMT+0100');
    var d2 = new Date('2016-03-21T23:00:00.000Z');
    
    Number(d1);  // 1458601200000
    Number(d2);  // 1458601200000
    

    Generally this is a good thing. Dealing in timezones gets very confusing. I find it best for a server to always deal in UTC.

提交回复
热议问题