gpt4 book ai didi

node.js - Sails autoCreatedAt 和 autoUpdatedAt 插入比我当前时区向前 5 小时的日期时间

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:28 24 4
gpt4 key购买 nike

实际上,我正在使用 SailsJS v0.11.3MongoDB v3.2.1 以及 sails-mongo 适配器。

我使用 sails autoCreatedAt 和 autoUpdatedAd 来存储时间戳,以跟踪不同表中的文档。

我发现这些记录存储在距现在+6 小时后的本地时区,即墨西哥城

Actual date = 2016-02-11T13:24:23 ==> Stored value = 2016-02-11T19:24:23

我已经检查了我的 Linux 操作系统中的时区并且设置正确。

我找不到问题出在哪里或如何解决。

有人可以帮我解决这个问题吗?提前致谢。

最佳答案

balderdash/sails official 中查看问题并提出一些问题 channel Gitter ,我找到了下一个:

始终使用 UTC 时间非常重要。因为这是将日期时间存储到数据库的标准。

将这些存储到您的服务器时区只会因为不同的原因给您带来麻烦,如本 video 中所述。 .

  • 如果有人出于某种原因更改了你的服务器时区,你就完蛋了!

建议将它们存储为 UTC 时间,如果您需要将它们转换为本地时区(或其他时区),只需使用 moment.js来做到这一点。

您将获得数据的一致性,因为任何时候您修改客户端中的这些属性,它们都会以 UTC 格式显示,并且您可以轻松地获取任何内容时区,无论您想要获取哪个时区,都可以使用存储在 MongoDB 中的 UTC 值。

var moment = require('moment');

var date = moment(updatedAt).locale('es').tz('America/Mexico_City').format();

您将在您想要的正确时区获得值!

Feb 10 2016 12:34:01 GMT-0600 (CST)

如您所见,它显示的是墨西哥城的 CST 时间,而不是 UTC 时间。

我真的建议这样做!或者至少,这是我认为最好的选择。

希望它有用。

关于node.js - Sails autoCreatedAt 和 autoUpdatedAt 插入比我当前时区向前 5 小时的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35322692/

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