【问题标题】:Moment JS Setting date formatMoment JS 设置日期格式
【发布时间】:2019-12-13 03:47:23
【问题描述】:

我有一个datetime 字符串,我正在创建一个start_timeend_time 变量。

预期输出: start_time 应该正好是从现在开始的 2 天,时间从 datetime 字符串和 end_time 开始正好是 start_time 的 3 小时。

代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script>
  const time = "2019-12-13T05:30:00+08:00"
  const date = moment(time);
  const h = date.hour();
  const m = date.minutes();
  const s = date.seconds();

  const from = moment().add(2, 'days');
  var start_time = from.clone().hour(h).minute(m).second(s);
  var end_time = start_time.clone().add(3, 'hours');

  // start_time = start_time.toISOString();
  // end_time = end_time.toISOString();

  console.log(start_time); // Expected: "2019-12-15T05:30:00+08:00"
  console.log(end_time); // Expected: "2019-12-15T08:30:00+08:00"
</script>

预期结果:

开始时间:“2019-12-15T05:30:00+08:00”

end_time: "2019-12-15T08:30:00+08:00"

当前结果:

开始时间:“2019-12-14T21:30:00.604Z”

end_time: "2019-12-15T00:30:00.604Z"

关于在这种情况下如何正确格式化日期以达到预期结果的任何想法?

【问题讨论】:

    标签: javascript momentjs


    【解决方案1】:

    这是因为您使用的是不同的时区。输入为 +8 时区,输出为 UTC

    如果您添加了.format(),您将看到您实际上拥有正确的值。

    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
    <script>
      const time = "2019-12-13T05:30:00+08:00"
      const date = moment(time);
      const h = date.hour();
      const m = date.minutes();
      const s = date.seconds();
    
      const from = moment().add(2, 'days');
      var start_time = from.clone().hour(h).minute(m).second(s);
      var end_time = start_time.clone().add(3, 'hours');
    
      // start_time = start_time.toISOString();
      // end_time = end_time.toISOString();
    
      // added .format()
      console.log(start_time.format()); // Expected: "2019-12-15T05:30:00+08:00"
      console.log(end_time.format()); // Expected: "2019-12-15T08:30:00+08:00"
    </script>

    【讨论】:

    • 感谢您的解决方案。
    【解决方案2】:

    试试这样:

    var start_time:moment().add(2,'days');
    var end_time:moment().add(2,'days').add(3,'hours')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 2017-05-24
      • 2020-08-19
      • 1970-01-01
      • 2018-04-24
      • 2019-09-08
      • 2019-07-08
      相关资源
      最近更新 更多