Estoy tratando de hacer que Node consulte mi base de datos y envíe los resultados al cliente donde se coloca en una <table> , pero con la marca de tiempo eliminada de la fecha.
Tengo el siguiente bit de Node consultando mi base de datos:
pool.query( "SELECT DATE(completed), duration, submitted FROM workentries WHERE iin = ?",[iin], function(error, results) { if(error) throw error; connection.release() res.send(results); } )El JS del lado del cliente:
const httpr = new XMLHttpRequest(); httpr.onload = () => { let responsej = JSON.parse(httpr.response) for(i in responsej) { document.getElementById("workentry-table").innerHTML += "<tr><td>"+responsej[i].completed+"</td><td>"+responsej[i].duration+"</td><td>"+responsej[i].submitted+"</td></tr>"; } } httpr.open('GET', '/workentry-list'); httpr.send();Este es el resultado:
Así es como se formatean las fechas en la base de datos:
También voy a querer volver a formatear la marca de tiempo en la fecha y hora submitted , por lo que sería de gran ayuda si puedo averiguar cómo formatear correctamente la fecha/hora para este caso.
(Lo siento si esto es obvio, pero soy relativamente nuevo en Node. Busqué en Google como un loco pero no pude encontrar una solución, lo que significa que este es un problema poco común o que estoy haciendo algo estúpido)
EDITAR:
undefined mediante el uso de DATE(completed) AS completed para la consultatoLocaleString() en el lado del clienteDebe dar un alias a la columna en la lista SELECT para que pueda referirse a ella como responsej[i].completed . De lo contrario, debe usar la responsej[i]['DATE(completed)']
Y para formatearlo como desee, use la función DATE_FORMAT() en lugar de devolver una DATE .
SELECT DATE_FORMAT(completed, '%Y-%m-%d') AS completed, duration, submitted FROM workentries WHERE iin = ?