我的开始和结束日期如下,
开始日期:“2015-02-19T00:00:00-08:00”
结束日期:“2015-02-19T17:00:00-08:00”
如您所见,日期格式为太平洋标准时间,因此日期在太平洋标准时间时区内没有问题,我使用的代码片段如下所示,
moment(StartDate).format("MMM Do");
但是当我在 IST [印度标准时间] 中查看同一页面时,它显示如下,
开始日期:“2 月 19 日” 结束日期:“2 月 20 日”
请帮我解决这个问题,让我知道我是否遗漏了什么。提前致谢。
最佳答案
这些是您的原始值:
Start Date: "2015-02-19T00:00:00-08:00"
End Date: "2015-02-19T17:00:00-08:00"
这些是 UTC 中的等效值:
Start Date: "2015-02-19T08:00:00+00:00"
End Date: "2015-02-20T01:00:00+00:00"
这些是印度标准时间的等效值:
Start Date: "2015-02-19T13:30:00+05:30"
End Date: "2015-02-20T06:30:00+05:30"
调整时区时间时,这是正常的预期行为。地球上的两个不同位置不一定始终遵循相同的日历日期。
有关时区的更多信息,我建议使用以下资源:
- > The timezone tag wiki在 StackOverflow 上
- > The Wikipedia page on time zones
- 我的 Date and Time Fundamentals Pluralsight 类(class)
- 可视化网站,例如 worldtimebuddy.com和 everytimezone.com
- 详细时区信息在 timeanddate.com
关于 moment.js,如果您只是说您希望保留原始值(无论用户的时区如何),那么请使用 parseZone
功能。
moment.parseZone(StartDate).format("MMM Do");
关于javascript - 时区转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702276/