【问题标题】:date format in node.JSnode.JS 中的日期格式
【发布时间】:2012-06-26 15:03:29
【问题描述】:

我正在使用 mysql 数据库,因为我有一个名为 request_date 的字段。该字段的类型为时间戳,该字段中存储的数据格式为2012-05-16 14:59:18。 但是当我通过 Node.JS 检索相同的数据时,数据在浏览器中显示为

Fri Jun 08 2012 15:16:50 GMT+0530 (India Standard Time)

为什么会发生这种格式变化?

我已经写了这个查询:

SELECT
biz_registration.reqid,biz_registration.request_date,biz_registration.req_status,biz_registration.annual_cost,biz_registration.rid,biz_contact.first_name,biz_contact.last_name
FROM biz_registration
INNER JOIN biz_contact ON biz_registration.reqid=biz_contact.reqid
ORDER BY biz_registration.request_date
DESC limit '+start+','+mlimit+''

我使用的html代码是,

options +='<div class="column" style="background-color: #E1E1E1;width:         100px;">'+result.reqid+'</div>';
options +='<div class="column" style="background-color: #E1E1E1;width: 160px;">'+result.request_date+'</div>';

【问题讨论】:

  • 如何将查询中的日期转换为 Node.JS 中的 Date 对象?你如何在 HTML 中显示日期?查询可能没问题,这是 HTML 格式或 Date 对象创建问题。
  • 请发布您用于将日期转换为 js Date 对象的代码(如果您这样做)以及生成 html 的代码。在 js 日期对象中,月份从 0 开始。一月是 0 月,六月是 5 月。
  • 你使用什么库来连接 MySQL - Node.JS?
  • 我没有做任何日期对象转换。谁能帮我做。提前谢谢
  • 感谢所有提供提示的人。

标签: mysql node.js


【解决方案1】:

有时您无法仅通过使用new Date().toLocaleStringnew Date().toISOString() 来使用yyyy-mm-dd h:MM:ss(数据库格式)来格式化您的日期。

为此我们需要添加 dateformat 包

npm install dateformat

然后我们使用

const dateFormat = require ('dateformat');

所以要指定日期,您可以使用 dateFormat

var created_at = dateFormat(new Date(), 'yyyy-mm-dd h:MM:ss');

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,这解决了我的问题:

    您需要“强制”您的 mysql 连接以立即对其进行格式化,将其添加到您的配置(连接详细信息)中:

    host: 'localhost',
    user: 'root'
    // ....
    dateStrings: 'date'
    

    请注意,在许多情况下

    dateStrings: true
    

    而不是'date'

    似乎是需要的解决方案。

    【讨论】:

    • 您能解释一下您的解决方案吗?
    • 我有一个包含一些订单的客户数据库,当我想显示订单日期时,我会得到一个很长的日期格式(来自第一篇文章的示例)然后我试图找到一个简单的解决方案,所以我可以只显示实际日期“MM/dd/YYYY”,并且使用上面的代码可以完美运行。我在其他网站上找到了这个例子,现在不记得了。这就是它现在对我的看法: var pool = mysql.createPool({ connectionLimit : 10, host : 'localhost', user : 'root', password : 'password', database : 'database', dateStrings: 'date ' });
    • node-mysql 文档中的所有选项: dateStrings:强制日期类型(TIMESTAMP、DATETIME、DATE)作为字符串返回,而不是膨胀到 JavaScript 日期对象中。 (默认: false) -- 我自己在寻找 DATETIME
    【解决方案3】:

    这里是solution

    var datetme = new Date().toLocaleString();
    

    const DATE_FORMATER = require( 'dateformat' );
    var datetme = DATE_FORMATER( new Date(), "yyyy-mm-dd HH:MM:ss" );
    

    【讨论】:

      【解决方案4】:

      这个配置解决了我的问题,根据 node-mysql doc

        host: 'localhost',
        user: 'root',
        password: '',
        dateStrings:true,
        database: "mydb"

      【讨论】:

        【解决方案5】:

        您所看到的只是默认的 javascript 日期格式。如果您希望它的格式不同,您可以使用以下方法:

        getDate(): Returns the date
        getMonth(): Returns the month
        getFullYear(): Returns the year
        

        在日期对象上,并将结果与​​ / 或 - 或 : 组合以获得您想要的格式。

        查看:http://www.elated.com/articles/working-with-dates/ 了解更多详情

        【讨论】:

          【解决方案6】:

          我通过要求名为日期格式的库或模块来实现这一点。 首先我们必须使用

          安装日期格式包

          npm 安装日期格式

          然后你可以在你的编码中要求它。 然后您可以将检索到的数据的对象创建为

          var day=dateFormat(result.request_date, "yyyy-mm-dd h:MM:ss");

          然后打印出来。

          【讨论】:

          • 请注意mysql的正确格式是:"yyyy-mm-dd HH:MM:ss"
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-22
          • 1970-01-01
          • 2011-11-18
          • 2020-09-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多