【问题标题】:Javascript Date object keeps on returning the default date (Mon Jan 19 1970 19:18:18) when trying to convert unix time [duplicate]尝试转换 unix 时间时,Javascript Date 对象不断返回默认日期(1970 年 1 月 19 日星期一 19:18:18)[重复]
【发布时间】:2022-01-17 20:45:15
【问题描述】:

我正在尝试使用 date 函数将我尝试转换为某种格式的 unix 时间。该函数以请求的格式成功返回日期,但时间错误。我在这里错过了什么?

const date = (e) => { 
  const unixTime = 1642698000
  const format = {
    weekday: 'long',
    day: 'numeric', 
    month: "2-digit", 
    year: "numeric"
  }
  return(new Date (unixTime).toLocaleString('en-US', format))
}

预期输出(应用程序)

Tue Jan 18 2022 17:00:00

收到的输出

Mon Jan 19 1970 19:18:18 GMT-0500 (Eastern Standard Time)

我尝试按照其他示例进行操作,但找不到任何可以解决此问题的方法。提前感谢您的帮助!

【问题讨论】:

  • JavaScript 以毫秒而不是秒为单位表示 Unix 时间戳。

标签: javascript date


【解决方案1】:

来自 Javascript 的 Date constructor 接受 毫秒 作为时间戳,而不是 unix 时间(秒数)。因此,要调整它,只需将 unix 时间乘以 1000。

const date = () => { 
  const unixTime = 1642698000 * 1000
  const format = {
    weekday: 'long',
    day: 'numeric', 
    month: "2-digit", 
    year: "numeric"
  }
  return(new Date (unixTime).toLocaleString('en-US', format))
}

console.log(date())
// logs Thursday, 01/20/2022

【讨论】:

  • 您应该避免回答已经回答的问题。一个例外可能是问题只是部分重复,但即便如此,您也应该为明显重复的部分引用重复的问题。
猜你喜欢
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 2020-12-07
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多