gpt4 book ai didi

node.js - 续订返回日期早于收到

转载 作者:行者123 更新时间:2023-12-03 22:34:34 25 4
gpt4 key购买 nike

早上好,我有一个问题,其中 Sequelize 返回到将日期传递给后端的前一天,并为此添加了一个默认时间,23:00:00。
简而言之,我在前端通过日期选择器选择一个日期并将其发送到后端。登录后端控制台时,它显示正确,但是当我将它发送到 where 子句时,它假定该日期的前一天并添加时间和格式。也就是说,如果您选择日期 2020-07-11,它将放在 where 2020-07-10 23:00:00 +00:00。
有谁知道如何解决这个问题?
我发送代码并从后端控制台打印以显示日期。
inserir a descrição da imagem aqui

var Viagem = require('../../model/viagem');
var pedido_viagem = require('../../model/pedido_viagem');
var Estado = require('../../model/estado');
var Pessoa = require('../../model/pessoa');
var Partida = require('../../model/freguesias');
var Chegada = require('../../model/freguesias');
const sequelize = require('../../model/database');
const viagem = require('../../model/viagem');

const cmv_cont = {}
sequelize.sync()

cmv_cont.pendentes_data_inicio = async(req, res) => {
const data_inicio_filtragem = req.query;
console.log(data_inicio_filtragem.data_inicio);
const data = await Viagem.findAll({
include: [{
model: Pessoa,
attributes: ['p_nome', 'u_nome']
}],
where: [
{estado: "2"},
{pago_pela_cmv: "0" },
{data_viagem: "" + data_inicio_filtragem.data_inicio }],
order: [
['data_viagem', 'ASC']
],

})
.then(function(data) {

return data;
})
.catch(error => {
console.log('Erro: ' + error);
return error;
});
res.json({ success: true, data: data });

}

module.exports = cmv_cont;

最佳答案

背后的原因是 Sequelize 时区配置。
根据您的代码,我假设您来自葡萄牙,因此时区是 UTC+00:00 ,但是,欧洲/里斯本的夏令时是 UTC+01:00 3 月 29 日 10 月 25 日
Sequelize 尝试将所有日期时间保存为 UTC+00:00尝试执行以下操作:

const moment = require('moment');

const date = moment('2020-07-11'); // moment("2020-07-11T00:00:00.000")
date.utc(); // moment.utc("2020-07-10T23:00:00.000+00:00")
这是您想要的标准行为和可能的配置。当您获取创建的 Viagem 时,日期应该以您的本地格式返回。

关于node.js - 续订返回日期早于收到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62746079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com