【问题标题】:Getting wrong date while using new Date() in javascript在 javascript 中使用 new Date() 时出现错误的日期
【发布时间】:2021-07-27 20:23:02
【问题描述】:

我将 ISO 日期时间值存储在数据库中,何时使用 new Date() 方法显示错误日期。

当我使用new Date().toISOString() 时,输出为2021-05-05T13:33:35.673Z,而当我使用new Date(event.date).toISOString() 时,输出为2021-05-05T18:47:00.000Z

但是当我尝试new Date().getDate() 时,输出为5,但对于new Date(event.date).getDate(),输出为6。为什么是6 而不是5

【问题讨论】:

  • event.date的值是多少
  • event.date 值为2021-05-05T18:47:00.000Z
  • 所以你得到了正确的输出。你期待的是什么,为什么?
  • 我的日期输出错误

标签: javascript node.js reactjs typescript


【解决方案1】:

这里的混淆是getDate 使用您的本地 时区,但toISOString 以UTC 显示信息。

如果您想要 ISO 字符串(UTC 格式)中的同一天值,请使用 getUTCDate

console.log(new Date("2021-05-05T18:47:00.000Z").getUTCDate());

【讨论】:

  • 得到答案 3 ;(
  • @IshanJoshi - 不是上面的代码和你描述的输入你不会。我猜你不小心使用了getUTCDay(星期几),而不是getUTCDate(星期几)。 (getUTCDay 确实会给你 3,因为 5 号是星期三,它是 0 = 星期日,1 = 星期一,...)
  • 你明白了,谢谢。如此愚蠢的错误。我花了 30 分钟
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 2018-07-29
  • 2019-09-21
  • 1970-01-01
相关资源
最近更新 更多