【问题标题】:Javascript date result console is not matched with MySQL resultJavascript 日期结果控制台与 MySQL 结果不匹配
【发布时间】:2021-03-23 16:06:47
【问题描述】:

我运行了一个查询,它给了我以下结果

但是当我尝试使用 JavaScript 对其进行控制台时,这给了我一个减去结果的日期。

[
  RowDataPacket { total: 0, log_date: 2020-12-04T18:30:00.000Z },
  RowDataPacket { total: 0, log_date: 2020-12-07T18:30:00.000Z },
  RowDataPacket { total: 0, log_date: 2020-12-11T18:30:00.000Z }
]

为什么会这样。 mysql 和控制台输出都在本地。

【问题讨论】:

  • 您的 JS 中的日期以 UTC 表示(Z 是祖鲁时间)
  • 请问如何解决这个问题
  • log_date: 2020-12-04 在 JavaScript 中但在 mysql 中 log_date: 2020-12-05
  • 查看 JavaScript 和查询中的时间以及日期 - 差异必须小于一天,根据您的时区,它必须是几个小时。并决定什么值是准确的,什么是错误的。 PS。什么是精确的log_date 数据类型?
  • 可能的解决方案 - 在检索期间将日期转换为字符串 (SELECT CAST(log_date AS CHAR) AS log_date, ...)。 Timeshift 不会应用于字符串数据。

标签: javascript mysql node.js


【解决方案1】:

这可能是一个解释:What does this format means T00:00:00.000Z?

在你的情况下,你可以尝试:

var d = new Date('2020-12-04T18:30:00.000Z');
console.log(d.getDay()); // Day is 5.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多