【问题标题】:Moment Js changes time in timezone object even when system timezone is same to supplied timezone即使系统时区与提供的时区相同,Moment Js 也会更改时区对象中的时间
【发布时间】:2017-09-04 08:23:01
【问题描述】:

我正在使用 moment js 进行时区转换。

moment.tz("2017-09-04 1:48 PM", "Asia/Calcutta").format("DD-MM-YYYY HH:mm A");

当系统处于同一时区Asia/Calcutta时,时刻js将时间2017-09-04 1:48 PM转换为04-09-2017 19:18 PM

如何解决这个问题。

我的系统时区是 Asia/Calcutta 。使用 moment.tz.guess(); 获取准确的时区值。

moment.tz("2017-09-04 1:48 PM", moment.tz.guess()).format("DD-MM-YYYY HH:mm A");

这也会改变时间。

提前致谢。

【问题讨论】:

    标签: javascript datetime momentjs


    【解决方案1】:

    您的输入不是符合 ISO 8601 的格式,您应该在解析时添加"YYYY-MM-DD h:mm A" 格式参数。

    您的代码给出了弃用警告,因此您必须按照parsing guide 中的建议使用moment(String, String) 解析方法。

    这是一个工作示例:

    var m = moment.tz("2017-09-04 1:48 PM", "YYYY-MM-DD h:mm A", "Asia/Calcutta").format("DD-MM-YYYY HH:mm A");
    console.log( m );
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.13/moment-timezone-with-data-2012-2022.min.js"></script>

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      相关资源
      最近更新 更多