【问题标题】:Date wrong in JS [duplicate]JS中的日期错误[重复]
【发布时间】:2021-07-27 21:43:37
【问题描述】:

为什么我在 javascript 控制台中创建时没有空格是昨天晚上 9:00 的日期,但是当我最后写有空格时,日期和时间是可以的?

new Date('2021-07-20')

错误:2021 年 7 月 19 日星期一 21:00:00


new Date('2021-07-20 ')

正确:2021 年 7 月 20 日星期二 00:00:00

【问题讨论】:

  • 我无法重现这个。你在这里使用什么环境?浏览器?什么样的?
  • 在 Chrome 终端和 ReactJS 中。
  • 编辑您的问题并将 sn-p 函数与 console.log 一起使用。在 Firefox 中,带空格的日期会返回错误。
  • 我可以看到 Node.js 和 Chrome 的区别,但请参阅 Date() constructor -Timestamp string: "注意:使用 Date 构造函数解析日期字符串(和 Date.parse(),其工作方式相同)由于浏览器的差异和不一致,强烈建议不要使用。”

标签: javascript typescript date google-chrome datetime


【解决方案1】:

2021-07-20 是一个有效的ISO time。它被解析为 2021 年 7 月 20 日 UCT 午夜。然后它会为您转换为本地时间(在阿雷格里港)是三个小时前。

2021-07-20 不是有效的 ISO 时间,因此它会针对非标准日期格式访问 JS 引擎的特定于实现的解析器。

【讨论】:

    【解决方案2】:

    你应该在它们之间使用 , 像: const d = new Date(2018, 11, 24, 10, 33, 30); 请记住,JavaScript 会像索引一样计算从 0 到 11 的月份和日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 2011-02-10
      相关资源
      最近更新 更多