我一直在尝试从存储在Firestore数据库中的日期开始获取“时间之前”。
我尝试了两个可以做到这一点的程序包,但我无法使其与Firestore时间戳一起使用,老实说,我不敢相信获得此功能会像以前一样困难。
获取自动更新的“时间之前”的最简单方法是什么?
我设法从Firestore的时间戳中获取了完整的日期,而不是它的早期版本。
答案 0 :(得分:4)
如果您将日期作为timestamp
存储在Firestore中(例如,使用FieldValue.serverTimestamp()),则以下Javascript代码将为您提供自storedTimestamp
的日期起经过的时间,以毫秒为单位:
var db = firebase.firestore();
var docRef = db.collection('yourCollection').doc('yourDocId');
docRef.get().then(function (doc) {
if (doc.exists) {
var storedDate = new Date(doc.data().storedTimestamp);
var nowDate = new Date();
var elapsedTime = (nowDate.getTime() - storedDate.getTime());
console.log(elapsedTime);
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function (error) {
console.log("Error getting document:", error);
});
您还可以如下使用moment.js库,例如,以天为单位计算出差额。
docRef.get().then(function (doc) {
if (doc.exists) {
var storedDate = moment(doc.data().storedTimestamp);
var nowDate = moment();
//get the difference in days, for example
console.log(nowDate.diff(storedDate, 'days'))
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function (error) {
console.log("Error getting document:", error);
});