gpt4 book ai didi

date - 如何在 Sails.js 中忽略时区

转载 作者:行者123 更新时间:2023-12-03 20:20:15 27 4
gpt4 key购买 nike

我有一个存储日期的旧数据库 没有时区信息 .我需要将这些按面值读入客户端,即2 pm在服务器时区应解释为 2 pm在客户端时区。

通过替换 Date.prototype.toJSON,我能够在查询服务器时删除时区使用简单地忽略时区的方法。现在我需要一个类似的解决方案服务器端。

这不是 how to set local timezone in sails 的副本.我要未设置 它。

编辑

日期在 PostGRES 中是正确的,但 Waterline/Sails 似乎在将其转换为 JSON 之前将其转换为 UTC。我不希望这种情况发生。 PostGRES 中的查询返回 2013-02-28 15:00:00 ,但是当我 console.log 来自 Sails 中相同查询的结果(通过 custom made toJSON method )我得到 "2013-02-28T07:00:00.000Z"反而。然后它被发送到客户端并转换为客户端的本地时间......你得到了图片。

最佳答案

所以sails-postgresql timezone support is broken .这是我的解决方法。我将日期字符串解析回 JavaScript 日期实例,将其设置为 UTC 时间,然后返回去掉时区的 ISO 字符串。客户从不提示。 :)

这一切都在 api/model/theModel.js 中完成,如 docs 中所述.

    toJSON: function() {

var obj = this.toObject();

if (obj.datetime) {

var date = new Date(Date.parse(obj.datetime)),
y = date.getFullYear(),
m = date.getMonth(),
d = date.getDate(),
h = date.getHours(),
M = date.getMinutes(),
newDate = new Date();

newDate.setUTCFullYear(y);
newDate.setUTCMonth(m);
newDate.setUTCDate(d);
newDate.setUTCHours(h);
newDate.setUTCMinutes(M);

obj.datetime = newDate.toISOString().slice(0,-8);
}

return obj;
},

关于date - 如何在 Sails.js 中忽略时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33252122/

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