2012-06-25 48 views
10

Estoy usando la base de datos mysql, ya que tengo un campo por nombre request_date. El tipo de campo es la marca de tiempo y los datos almacenados en este campo tienen el formato 2012-05-16 14:59:18. Pero cuando puedo recuperar los mismos datos por Node.JS, los datos se muestran en el navegador comoformato de fecha en node.JS

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

¿Por qué este cambio de formato está sucediendo?

he escrito esta consulta:

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+'' 

el código html que estoy usando es,

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>'; 
+0

¿Cómo estás convirtiendo la fecha de la consulta en una 'date' objeto en Node.JS? ¿Cómo está mostrando la fecha en HTML? La consulta probablemente sea correcta, se trata del formato HTML o del problema de creación de objetos 'Fecha'. – freakish

+0

Publique el código que usa para convertir la fecha en un objeto Date js (si lo hace) y el código que genera el html. En js Fecha-objetos, los meses comienzan en 0. Enero es el mes 0, junio es el mes 5. – kioopi

+0

¿Qué biblioteca está usando para MySQL - Conexión Node.JS? – freakish

Respuesta

8

me dieron este trabajo, al exigir la biblioteca o módulo llamado formato de fecha. primero tenemos que instalar el paquete usando el formato de fecha

NPM instalar dateformat

entonces u puede requerir en ur codificación. entonces u puede crear el objeto de datos recuperados como

var día = dateFormat (result.request_date, "aaaa-mm-dd h: mm: ss");

e imprímalo.

+3

Tenga en cuenta que el formato correcto para mysql es: "aaaa-mm-dd HH: MM: ss" –

2

Lo que ves, es simplemente el formato predeterminado de fecha de javascript. Si usted quiere que un formato diferente, puede utilizar los métodos:

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

en el objeto de fecha, y combinar los resultados con/o - o: para obtener el formato que desee.

Tenga una mirada en: http://www.elated.com/articles/working-with-dates/ para más detalles

21

que estaba teniendo el mismo problema, que esto esté arreglado mi problema:

Es necesario 'forzar' la conexión de MySQL para formatear inmediatamente, añadir esto en su configuración (los detalles de conexión):

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

¿Podría explicar mejor su solución? – abarisone

+0

Tenía una base de datos de clientes con algunos pedidos y cuando quería mostrar la fecha del pedido obtendría un formato de fecha muy larga (ejemplo desde la primera publicación) Entonces estaba tratando de encontrar una solución simple para poder mostrar la fecha real 'MM/dd/YYYY' y con el código de arriba funcionó perfectamente. Encontré ese ejemplo en otro sitio, no recuerdo ahora. Esta es la forma en que me mira ahora: piscina var = mysql.createPool ({ connectionLimit: 10, anfitrión: 'localhost', usuario: 'root', contraseña 'password', base de datos : 'database', dateStrings: 'fecha' }); – Balkana

+2

Todas las opciones del nodo-mysql docs: dateStrings: Forzar tipos de fecha (TIMESTAMP, DATETIME, DATE) para que se devuelvan como cadenas en lugar de inflarlas en los objetos Date de JavaScript. (Valor predeterminado: falso) - Estaba buscando DATETIME por mi cuenta – user353885

8

Esta configuración mina de resolución, de acuerdo con node-mysql doc

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