Дата узла, полученная из postrgre sql, преобразуется в нежелательный формат - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть pg select

db.query("SELECT * from users where id ="+userId).then(data => {
   console.log(data[0].birth_date)
})

, который возвращает

1997-08-11T22:00:00.000Z

Я подготовил функцию для анализа данных

function filterDate(date) {
console.log("inside")
console.log(date)
var stringDate = date.toString();
var result = stringDate.match(/(?:(?!T).)*/)
console.log(result)
console.log("inside")
return result[0];

}

Что должно вернуть 1997-98-11 Проблема в том, что всякий раз, когда .toString () происходит внутри filterDate, он предварительно форматирует дату в недопустимую строку 'Tue Aug 12 1997 00:00:00 GMT+0200 (GMT+02:00)',. Я занимался этим на стороне клиента, поэтому я делал это непосредственно после res.send, и он работал нормально. Но теперь, если я date.toString () на стороне сервера, он переформатирует его в странный формат. Как мне избежать этого и поддерживать первый формат?

1 Ответ

0 голосов
/ 09 апреля 2020

Используя момент npm

  function filterDate(date) {
    var stringDate = moment(date).format('YYYY-MM-DD').toString();
    var result = stringDate.match(/(?:(?!T).)*/)
    return result[0];
  }

А затем

deathDate = moment(filterDate(birth_date)).add(yearsToLive, 'years')

Назначит правильный формат как ГГГГ-ММ-ДД

...