我的开始和结束日期如下,
开始日期:"2015-02-19T00:00-08:00"
结束日期:"2015-02-19T17:00:00-08:00"
正如你所看到的,日期格式是在PST中,所以日期在PST时区很好,我使用的片段如下,
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"
这是为时区调整时间时的正常行为和预期行为。地球上两个不同的位置不一定总是遵守同一个日历日期。
有关时区的更多信息,我建议使用以下资源:
- StackOverflow上的时区标签wiki
- 维基百科时区页面
- 我的Pluralsight日期和时间基础课程
- 可视化网站,如worldtimebuddy.com和everythimezone.com
- timeanddate.com上的详细时区信息
关于moment.js,如果您只是说希望保留原始值(无论用户的时区如何),那么请使用parseZone
函数。
moment.parseZone(StartDate).format("MMM Do");
您可以使用即时时区实现无问题
moment(StartDate).tz('America/Denver').format("MMM Do");
或太平洋标准时间区的任何其他城市。。。