我在postgres中有date
类型的列生日,我收到了来自前端的unixtimestamp,如716500800
。当我将它保存到postgresql时,似乎它正在根据我的本地时区进行转换。我不明白我应该做什么,这是一个代码
const date = moment.utc(data.birthday * 1000).format();
console.log(date); // 1992-09-15T00:00:00Z it is right date
db.query(
'UPDATE app_users SET birthday=$1 where id=$2 RETURNING birthday',
[
date,
id
],
(err, bd) => {
console.log(bd.rows); // birthday: 1992-09-14T20:00:00.000Z
}
答案 0 :(得分:0)
所以我在服务器和db上设置时区为UTC。从前端我得到timezone和chande db字段到timestamptz(带时区)。现在,我使用UTC中的所有日期进行操作,并使用时区显示/获取客户端。