如何比较firebase时间戳?

use*_*140 4 javascript firebase firebase-admin google-cloud-firestore

我有这样的云函数代码代码:

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}`)
Run Code Online (Sandbox Code Playgroud)

在控制台中:

ts:格林威治标准时间 2019 年 4 月 8 日星期一 20:59:59 现在:格林威治标准时间 2019 年 3 月 8 日星期五 20:19:18 GMT

较大:假 较低:假

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

wil*_*tel 11

随着SDK版本7.10.0,您可以直接比较时间戳和JavaScript的算术不平等比较操作的对象(<,<=,>和>=)。

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

SDK 发行说明在这里。

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

a = new Timestamp(1, 1)
b = new Timestamp(2, 2)
console.log(a < b) // true
console.log(b < a) // false
Run Code Online (Sandbox Code Playgroud)