const moment = require('moment');
const db = require("../db/conn");
const runStmtPromisified = require("../utils/runStmtPromisified");
const f = async () => {
const stmt = `select * from test;`
const tests = await runStmtPromisified(stmt, [], db);
tests.forEach(test => {
test.created_at = moment(test.created_at).format('LLL') // throws error*
// const momentDate = moment(test.created_at) // **
// test.created_at = momentDate.format('LLL') // ** This works, why?
})
console.log(tests);
}
f()
Это ошибка *
Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: May 26, 2020 6:51 PM, _f: undefined, _strict: undefined, _locale: [object Object]
Error
at Function.createFromInputFallback...
Я проверил тип test.created_at, это объект. И когда я регистрируюсь, он показывает дату. Итак, я предполагаю, что это объект даты javascript.
Почему разбор переменной в другую переменную, а затем форматирование новой переменной и сохранение ее в исходной переменной работают, но синтаксический анализ, форматирование и сохранение напрямую к исходной переменной не работает?
Имеет ли это какое-либо отношение к тому, что код находится внутри функции asyn c? или тот факт, что я получаю данные из базы данных mysql?
Я пробовал это, и это тоже работает:
let jsDateObj = new Date('12/10/1999')
jsDateObj = moment(jsDateObj).format('LLL')
console.log(jsDateObj)
Спасибо