如何将Firebase中的时间戳数据类型转换为日期?

时间:2018-12-20 19:29:05

标签: javascript firebase google-cloud-firestore

我的Firebase数据库中有这个。 beginDate:2018年12月25日UTC-8下午4:00:00。我希望它可以随着时间转换为日期。

我尝试了这个,但是没有用

{{(elem.beginDate * 1000)|日期}}。

我正在Ionic上构建应用程序,并且我的模板具有以下代码。

发件人:{{(elem.beginDate * 1000 | date)}}

给出输出[object Object]

3 个答案:

答案 0 :(得分:0)

Firestore时间戳记不以数字形式返回。它们是Timestamp对象。如果要将时间戳转换为JavaScript日期,请使用其toDate()方法。

答案 1 :(得分:0)

首先,您从firebase中检索时间戳,然后使用toDate()将时间戳转换为日期。您也可以使用toMillis()。有关以下信息的更多信息:https://firebase.google.com/docs/reference/js/firebase.firestore.Timestamp.html#returnsnumber

db.collection('user').get().then( (snapshot) => {
    snapshot.docs.forEach(doc => {
        var time = doc.data().timestamp;
        var date = time.toDate();
        console.log(date);
    })
})

答案 2 :(得分:0)

我从Firestore得到的是: t {秒:1622775600,纳秒:0}

这是我能够将其转换为日期格式的方法:

  return this.collection.snapshotChanges().
     pipe(map(actions =>{
        return actions.map(item =>{
            const data = item.payload.doc.data() as [myObject];

            data.beginDate = new Date(data.beginDate["seconds"] * 1000);

            const id = item.payload.doc.id;
            return {...data,id};
        })
    }));

我希望这对您有用。