如何比较 firebase 时间戳?

新手上路,请多包涵

我有这样的云功能代码代码:

 console.log(`ts: ${(element.get('expire') as admin.firestore.Timestamp).toDate().toUTCString()} now: ${admin.firestore.Timestamp.now().toDate().toUTCString()}`)
const greater = (element.get('expire') as admin.firestore.Timestamp) > admin.firestore.Timestamp.now()
const lower = (element.get('expire') as admin.firestore.Timestamp) < admin.firestore.Timestamp.now()
console.log(`greater: ${greater} lower: ${lower}`)

在控制台中:

ts:2019 年 4 月 8 日星期一 20:59:59 GMT 现在:2019 年 3 月 8 日星期五 20:19:18 GMT

更大:假 更低:假

那么如何正确地与时间戳进行比较呢?

原文由 user1717140 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 631
2 个回答

您可以通过比较 Timestamp 对象上的 纳秒 属性来做到这一点。或者,为了更简单,不需要纳秒精度,你可以只比较它们的 toMillis() 值的结果。

原文由 Doug Stevenson 发布,翻译遵循 CC BY-SA 4.0 许可协议

从 SDK 版本 7.10.0 开始,您可以直接将 Timestamp 对象与 JavaScript 算术不等式比较运算符( <<=> 6cada526、—b5f35c62743f3e5af-6cada526、 >= )。

要检查两个 Timestamp 对象在时间上是否相同,您必须使用 isEqual 属性 ( docs )。与 ===== 比较将不会检查时间相等性——如果比较不同的对象实例则返回 false

此处为 SDK 发行说明

从相应的 GitHub 问题 中提取的代码片段:

 a = new Timestamp(1, 1)
b = new Timestamp(2, 2)
console.log(a < b) // true
console.log(b < a) // false

原文由 willbattel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题