【问题标题】:Time zone conversions时区转换
【发布时间】:2015-04-26 11:00:15
【问题描述】:

我的开始和结束日期如下,

开始日期:“2015-02-19T00:00:00-08:00”

结束日期:“2015-02-19T17:00:00-08:00”

如您所见,日期格式是 PST,所以日期在 PST 时区很好,我使用的 sn-p 如下所示,

moment(StartDate).format("MMM Do");

但是当我在 IST [印度标准时间] 中查看同一页面时,它显示如下,

开始日期:“2 月 19 日” 结束日期:“2 月 20 日”

请帮我解决这个问题,让我知道我有什么遗漏的。提前致谢。

【问题讨论】:

  • 哪个 IST?印度人、爱尔兰人、以色列人?

标签: javascript date timezone momentjs


【解决方案1】:

这些是您的原始值:

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"

这是调整时区时间时的正常预期行为。地球上的两个不同位置不一定始终遵循相同的日历日期。

有关时区的更多信息,我建议使用以下资源:

关于 moment.js,如果您只是说希望保留原始值(无论用户的时区如何),请使用 parseZone 函数。

moment.parseZone(StartDate).format("MMM Do");

【讨论】:

    【解决方案2】:

    moment timezone 可以毫无问题地做到这一点

    moment(StartDate).tz('America/Denver').format("MMM Do");
    

    或 PST-Zone 中的任何其他城市...

    【讨论】:

    • 丹佛是山区时间。 :)
    猜你喜欢
    • 2012-06-15
    • 2014-11-30
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多