2016-03-19 2 views
3

Я использую Node.js вместе с mysql, express и html.Формат даты в node.js

Когда я получаю результаты из базы данных, я получаю следующую дату: 2016-03-16T00:00:00.000Z, хотя тип в mysql - это дата.

Мой запрос:

app.get('/list', function (req,res) { 
    connection.query('SELECT `ondate`,`projectname`,`hours` FROM `entries` WHERE YEARWEEK(`ondate`, 1) = YEARWEEK(CURDATE(), 1) ORDER BY ondate DESC ,projectname ASC ', function(err, rows, fields) { 
    res.json({error: err, result: rows}); 
    }); 
}) 

Есть ли способ я могу установить ondate поле игнорировать время?

+0

Какой драйвер mysql вы используете? –

ответ

3

Используйте это:

SELECT 
DATE_FORMAT(`ondate`,'%m-%d-%Y'), 
`projectname`, 
`hours` 
FROM `entries` 
WHERE YEARWEEK(`ondate`, 1) = YEARWEEK(CURDATE(), 1) 
ORDER BY ondate DESC, projectname ASC; 

Настройте формат даты на тот, который вам нужен.

С уважением

+0

Отлично! Это то, что мне нужно –

2

Трудно точно знать, где нежелательное форматирование вводится, но это может быть вариант, чтобы удалить его как часть строк постобработки ...

// Assuming array of rows takes shape something like this... 
 
var rows = [{ondate:'2012-01-02T00:00:00.000Z'},{ondate:'2013-01-02T00:00:00.000Z'},{ondate:'2012-03-02T00:00:00.000Z'}]; 
 

 
// map rows to show only first ten chars of `ondate` field 
 
rows = rows.map(function(item){ return item.ondate.slice(0,10); }); 
 

 
// business as usual... 
 
alert(rows); 
 
//-> 2012-01-02,2013-01-02,2012-03-02

Смежные вопросы