node.JS中的日期格式

nit*_*mar 17 mysql node.js

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

Fri Jun 08 2012 15:16:50 GMT+0530 (India Standard Time)
Run Code Online (Sandbox Code Playgroud)

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

我写了这个查询:

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+''
Run Code Online (Sandbox Code Playgroud)

我正在使用的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>';
Run Code Online (Sandbox Code Playgroud)

小智 28

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

你需要"强制"你的mysql连接立即格式化它,将它添加到你的配置(连接细节):

host: 'localhost',
user: 'root'
// ....
dateStrings: 'date'
Run Code Online (Sandbox Code Playgroud)

  • 来自node-mysql文档的所有选项:dateStrings:强制日期类型(TIMESTAMP,DATETIME,DATE)将作为字符串返回,而不是膨胀为JavaScript Date对象.(默认值:false) - 我自己在寻找DATETIME (2认同)

小智 15

根据node-mysql doc,这个配置解析了我的

  host: 'localhost',
  user: 'root',
  password: '',
  dateStrings:true,
  database: "mydb"
Run Code Online (Sandbox Code Playgroud)


nit*_*mar 8

我通过要求名为日期格式的库或模块来实现这一点.首先我们要使用安装日期格式包

npm install dateformat

然后你可以在你的编码中要求它.然后你可以创建检索数据的对象

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

然后打印出来.

  • 请注意,mysql的正确格式为:"yyyy-mm-dd HH:MM:ss" (3认同)

M. *_*put 5

这是解决方案

var datetme = new Date().toLocaleString();
Run Code Online (Sandbox Code Playgroud)

或者

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