【发布时间】:2022-02-02 08:17:49
【问题描述】:
我正在使用 PostGreSql,它在表 2021-12-03T00:00:00.000Z 之一中包含日期列。我使用 nodejs 开发了 API 来从表中获取数据。
下面是我编写的用于格式化日期并传递给类的函数。这工作得很好,我收到2021-12-03 作为输出
formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + (d.getDate() + 1),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
}
async getData(date){
return {
DataLine: await this._dateLine.getData1(d)
}
}
app.js
class Data extends Model {
constructor(conn, schema) {
super(conn, schema, "data", {
Date: date(true),
number: integer(true),
...many other column
}, true);
}
async getData1(date) {
return (await this._permanent.findAll({ where: { td:date } })).map((term) => ({
td: term.transDate,
number: term.number,
}));
}
}
有没有办法require them in the "yyyy-mm-dd" format to begin with 而不是像上面那样解析/重新格式化,因为我已经得到格式为yyyy-mm-dd 的日期,我的函数重做吗?
【问题讨论】:
-
为什么需要解析和重新格式化?
-
@evolutionxbox 因为这是我 console.log 的原始日期 -
2021-12-03T00:00:00.000Z -
我不认为上面的链接回答了我的问题
-
改用this 怎么样?
-
之所以有这么多的cmets,是因为想要得到什么是极其困难的。 Nikita's answer from yesterday 会做你想做的事,并且实际上与你现在提议的相同。
date.toJSON给出与date.toISOString完全相同的结果。这将为您提供 UTC 日期。我的(已删除)答案返回本地日期。
标签: javascript node.js date sequelize.js refactoring