【发布时间】:2021-04-19 17:11:09
【问题描述】:
我从我的 api 收到以下日期字符串(作为 UTC):"2020-04-01T00:00:00Z" 这很好。
然后我将此字符串转换为 Date 对象,如下所示:let formattedstartDate: Date = new Date(data.body.startDate);
我现在在英国,所以这显示为:Wed Apr 01 2020 01:00:00 GMT+0100 (British Summer Time) 但是对于我在美国的用户,这显示为:Tue Mar 31 2020 19:00:00 GMT-0500 (America New_York Standard Time) 因为这当然是由于他们的本地浏览器转换为不同的时区,但是我想为所有用户保留 GMT/UTC 时间,无论他们身在何处。
我希望世界上的每个人都将其视为:Wed Apr 01 2020 01:00:00 GMT+0100 (British Summer Time)
所以我使用以下方法手动转换回 GMT/UTC:
let convertToUtcDate = new Date(formattedstartDate.getUTCFullYear(), formattedstartDate.getUTCMonth(), formattedstartDate.getUTCDate(), formattedstartDate.getUTCHours(), formattedstartDate.getUTCMinutes(), formattedstartDate.getUTCSeconds());
但是美国的用户仍然认为这是Tue Mar 31 2020 19:00:00 GMT-0500 (America New_York Standard Time) 任何关于为什么的想法?
【问题讨论】:
标签: javascript momentjs moment-timezone