【问题标题】:MySQL: date format changed when retrieving it by node.jsMySQL:通过 node.js 检索日期格式时更改
【发布时间】:2017-08-24 04:15:59
【问题描述】:

我已经制作了一张包含个人信息的表格,其中 DOB 为“日期”类型。当我在终端中选择整个表格时,它显示正确的格式(YYYY-MM-DD)。但是,当我通过 node.js 创建连接并输出到控制台时,它被打印为 JSON 对象,其中 DOB 现在在实际日期后面有 hh-mm-ss?

例如,我的专栏之一的 DOB 为“1996-03-06”。但是,当它被传递到 node.js 服务器并打印到控制台日志时,它变成了“1996-03-0605:00:00.000Z”

更奇怪的是,当我将这些信息发送到 Ajax 打印到网络时,输出实际上是这样的:Wed Mar 06 1996 00:00:00 GMT-0500 (EST),这与实际数据和控制台中显示的数据

【问题讨论】:

  • 看起来 Node 可能将日期转换为设置为午夜的时间戳。这没有什么问题,只要显示你想要的信息就行了。
  • 但是,当我通过 Ajax 发送这条信息并打印到网络上时,输出变为: Wed Mar 06 1996 00:00:00 GMT-0500 (EST),这与两者不同实际数据和控制台中显示的数据。我怎样才能让它只显示 YYYY-MM-DD?
  • 您可以上传您使用 node.js 发送的那部分代码吗?

标签: javascript mysql node.js


【解决方案1】:

只需从Date 对象中打印或发送您需要的任何内容

console.log(DOB.toISOString().slice(0,10))

【讨论】:

    【解决方案2】:

    我自己也遇到过这个问题。 有一个名为 dateStrings 的连接参数,默认为 false; 这将其切换回传统行为。

    const conn = await mysql.createConnection({
        host: process.env.DBHOST,
        user: process.env.DBUSER,
        password: process.env.DBPASS,
        port: process.env.DBPORT,
        database: process.env.DATABASE,
        dateStrings: true // <--- fix
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      相关资源
      最近更新 更多