【问题标题】:How to get hours in moment.js in GMT timezone?如何在 GMT 时区获取 moment.js 的小时数?
【发布时间】:2017-10-06 13:10:37
【问题描述】:

例如,如果我对上面的日期对象执行如下操作:value.hours(),我得到的输出是16,而不是18。我相信它会返回原始 GMT 时间的小时数,而不是像我的日期对象 GMT+2 那样。我当然可以在返回的结果中加 2,但这会变得很麻烦。在我的情况下,有什么方法可以正确获取时间吗?

【问题讨论】:

  • 请务必将您已经尝试过的任何代码添加到您的问题中,以便我们更好地了解您的问题。您明确了您所追求的信息;但是,在不知道您已经尝试过什么的情况下,我们最终可能会加倍处理您的问题,并为您已经失败的事情提供答案。
  • @typos 这个问题解决了吗?
  • @aaron 是的,答案都与此无关。有答案时,我无法删除问题。
  • 如果您的解决方案值得分享,请将其发布为答案。
  • @aaron 没什么可分享的。如果我们可以删除问题,我会很高兴。

标签: javascript datetime momentjs


【解决方案1】:

我不确定您已经尝试过什么,但我将以下内容放入 JSFiddle 中,它就像一个魅力。我目前在美国 CST,现在是早上 8:30。当我在下面运行 sn-p 时,我得到了今天下午 1:30 的日期,我认为这是准确的差异。

HTML

<div id="m1"></div>

JavaScript

var a = moment.tz(new Date(), "GMT");
document.getElementById('m1').innerHTML = a.format("YYYY MM DD; HH:mm");

Moment.js 文档说明了以下关于使用本机 JavaScript Date 对象创建 Moment 对象的内容:

您可以使用预先存在的本机 JavaScript Date 对象创建 Moment

var day = new Date(2011, 9, 16);
var dayWrapper = moment(day);

这会克隆Date 对象;对Date 的进一步更改不会影响Moment,反之亦然。

为了快速找到上面引用的信息,当您到达 Moment.js 文档时,它位于 Parse 小节下的 日期

【讨论】:

    【解决方案2】:

    显示当地时间:

    value.local();
    value.hours(); // 18
    

    反转:

    value.utc();
    value.hours(); // 16
    

    【讨论】:

      【解决方案3】:

      我认为您可以按照文档中的说明来解决它。像这样的:

      moment().tz("America/Los_Angeles").format();
      

      https://momentjs.com/timezone/docs/#/using-timezones/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-14
        • 2019-04-06
        • 2019-10-14
        • 1970-01-01
        • 2016-07-24
        • 2012-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多