【问题标题】:Converting epoch time to GMT Date Time Javascript将纪元时间转换为 GMT 日期时间 Javascript
【发布时间】:2021-03-25 19:26:35
【问题描述】:

我目前在我的应用程序中使用时刻 js,但无法弄清楚如何将纪元时间转换为 GMT 日期时间。在下面提供我的代码:

click: (event) => {
   console.log(moment.utc(event.point.category).toDate());
}

event.point.category 提供纪元时间,我想将其转换为 GMT 日期时间对象,但上面的代码将其转换为本地时区日期对象。

例如。 1606262400000 将转换为 2020 年 11 月 24 日星期二 19:00:00 GMT-0500(东部标准时间),而不是 GMT 日期时间,即 11 月 25 日星期三, 2020 年 12:00:00 AM

【问题讨论】:

  • 从时刻文档开始:moment.utc(event.point.category).format() 符合您的期望。 momentjs.com/guides/#/parsing/local-utc-zone
  • @ParikshithKedilayaM 感谢您的评论,但 format() 以字符串形式提供输出,我正在寻找 javascript 日期时间对象。

标签: javascript reactjs datetime momentjs


【解决方案1】:

您应该获取客户端的 (UTC) 偏移量(以分钟为单位)以更正时间

click: (event) => {
  const offset = new Date().getTimezoneOffset(); 
  const targetTime = moment.utc(event.point.category).toDate();
  const offsetTime = new Date(targetTime.getTime() + offset * 60 * 1000);
  console.log(offsetTime);
}
    

【讨论】:

    【解决方案2】:

    我相信您所缺少的只是toUTCString()

    2020 年 11 月 24 日星期二 19:00:00 GMT-0500(东部标准时间)2020 年 11 月 25 日星期三 12:00:00 的纪元时间戳相同格林威治标准时间上午

    click: (event) => {
       console.log(moment.utc(event.point.category).toDate().toUTCString());
    }
    

    要保留为​​Date 对象,请使用moment.utc().format()

    【讨论】:

    • 我按照您的建议进行了尝试,但 .format() 将输出作为字符串“2020-11-25T00:00:00Z”返回。我正在寻找 GMT 日期时间对象。
    • @rahul 在这种情况下,我强烈建议您使用其他补充库,例如 momentjs.com/timezonemoment.github.io/luxon 来提供帮助。我个人使用 Luxon 本质上是把 moment.js 和 moment-timezone 打包在一起。
    【解决方案3】:

    你可以试试这样的,

    click: (event) => {
       console.log(moment(moment.utc(event.point.category).toISOString()).utc());
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-06
      • 2018-08-03
      • 2018-04-24
      • 2011-12-06
      • 2010-12-14
      • 2012-11-08
      • 2019-01-15
      • 2012-11-22
      • 2022-08-04
      相关资源
      最近更新 更多