有没有办法根据推文 ID 判断一条推文是否是在另一条推文之后创建的?

Is there a way to tell if one tweet was created after another based on the tweet id?

目前我正在根据时间戳检查一条推文是否是在另一条推文之后创建的,但这被证明是不一致的。在本地工作的东西并不总是在我的服务器上工作。我怀疑时区问题(我的服务器在另一个时区)。

但我想知道我是否可以根据 Twitter 的每条推文的唯一 ID 来做到这一点?形式为:

if (tweet2.id > tweet1.id) {
    // tweet2 created after tweet 1
} else {
    // tweet2 created before tweet 1
}

这可能吗?如果不是,我会问另一个问题,关于我的日期实施可能出了什么问题。

  • Twitter ID 由 twitter snowflake 机制生成 是一种算法和生成它的机器集群。一般来说 这些 id 是连续的,所以你的比较基本上会成立。这 问题是那些 id 当前 > 64 位,所以 js 会截断 那些。诀窍是使用 tweetXXX.id_str 字段,它是 id 转换为字符串供您比较。
  • 我没有看到您的日期实现,但您可能没有比较 UTC 日期值。在日期时间上进行的任何比较都不会给你正确的结果,即使在毫秒级上也会有很多推文在同一日期时间。