【问题标题】:Storing time with offset to be referenced later存储带有偏移量的时间以供稍后参考
【发布时间】:2016-12-02 17:38:41
【问题描述】:

我最后想要做什么: * 检查 Node 服务器上当前的 UTC 时间是否晚于用户的本地时间。

在 Node (Expressjs) 中,我从 Facebook 获取一些用户数据。他们只会始终如一地给我一个时间偏移量(如 -8)和一个语言环境(如 en_US)

如果我天真地检查utcTime + offset >= userTime,它有时会根据夏令时关闭。

推荐的处理方法是什么?

如果这有什么不同,我将数据存储在 Postgres 中?它有一些时间函数。

【问题讨论】:

  • 对于日期操作,使用momentjs.com,它让一切变得更容易

标签: javascript node.js postgresql time


【解决方案1】:

看看momentjs。处理日期和时间时很棒的库,尤其是UTC support

对你来说,把给定的时间转换成UTC时间,然后比较。

var nodeTime = moment.utc(serverValue); var facebookTime = moment.utc(facebookValue); nodeTime.isAfter(facebookTime); // => true or false

【讨论】:

  • 这不会检测夏令时变化。
  • 查看 momentjs 文档。对此也有查询,isDST() 也许它们对您的用例有用。如果您真的很担心,只需转换为时间戳并比较这些毫秒。这样时区就无关紧要了。有关详细信息,请参阅此答案stackoverflow.com/questions/26873200/…
猜你喜欢
  • 1970-01-01
  • 2019-04-03
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多