我有这样的云功能代码:
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
更大:错误更低:错误
那么与时间戳比较如何呢?
答案 0 :(得分:2)
从SDK版本7.10.0开始,您可以直接将Timestamp对象与JavaScript算术不等式比较运算符(>>> df = df.reindex(pd.date_range(df.index[0], df.index[-1],freq='M').tolist() + [d
f.index[-1]])
>>> df
a
date
2015-12-31 0.0
2016-01-31 0.0
2016-02-29 0.0
2016-03-31 0.0
2016-04-30 0.0
2016-05-31 NaN
2016-06-30 NaN
2016-07-30 0.0
,<
,<=
和>
)进行比较
要检查两个Timestamp对象在时间上是否相同,必须使用>=
属性(docs)。与isEqual
或==
进行比较将不会检查时间相等性,如果比较不同的对象实例,则会返回===
。
代码段拉到from corresponding GitHub issue:
false
答案 1 :(得分:1)
您可以通过比较Timestamp对象上的seconds和nanoseconds属性来做到这一点。或者,为简化起见,并且不需要纳秒精度,您可以比较它们的toMillis()值的结果。
答案 2 :(得分:0)
您是否尝试过将时间戳转换为Date对象,以便能够仅比较日期而不是时间戳?
例如:
const greater = new Date(element.get('expire') as admin.firestore.Timestamp) > new Date();
const lower = new Date(element.get('expire') as admin.firestore.Timestamp) < new Date();