【问题标题】:How to get Unix offsets from sequelize?如何从 sequelize 中获取 Unix 偏移量?
【发布时间】:2018-11-14 11:58:55
【问题描述】:

我正在使用 Postgres 在节点中使用 sequelize。我有没有 TIMEZONE 字段的 TIMESTAMP,但它们总是以字符串形式返回。我想要 Unix 偏移量。我喜欢使用原生日期格式,但字符串对我来说毫无用处。

是否有获取偏移量的标准模式?还是我只是将数据库中的所有内容都更改为整数?

我对毫秒偏移也很满意。

【问题讨论】:

    标签: node.js date timestamp sequelize.js


    【解决方案1】:

    好吧,如果你想要偏移量,你应该在表中保存一个整数来存储它,你可以像这样得到日期偏移量:

    let offset = new Date().getTimezoneOffset();
    

    https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

    但是如果你想要 Unix 时间戳,你可以像下面这样得到它:

    let ts = parseInt((new Date()).getTime() / 1000);
    

    类似于此链接:https://www.electrictoolbox.com/unix-timestamp-javascript/,并存储在整数或 varchar 字段中。

    【讨论】:

    • 这与时区无关。生成 unix 偏移量很容易。我个人使用: Math.floor(+new Date() / 1000) 或者如果可行的话,只使用 +new Date() 的毫秒数。我怀疑你的 parseInt 是一个错字。我的主要问题是你生成,比如说,一个令牌到期时间,作为一个 unix 偏移量。它是明确的,不需要时区限定等。您将其转换为 SQL 的字符串(浮点数学!),然后转换为整数并返回相同的值。我只想要整数。有 SQL 方法可以做到这一点。只是想知道 Sequelize 是否已经处理了它。
    猜你喜欢
    • 2018-09-11
    • 2011-08-17
    • 1970-01-01
    • 2013-08-28
    • 2016-08-06
    • 2012-06-12
    • 1970-01-01
    • 2012-10-27
    • 2020-04-20
    相关资源
    最近更新 更多