如何在Angular中将数据另存为Firestore Timestamp对象

时间:2018-11-19 10:05:03

标签: angular typescript firebase google-cloud-firestore angular6

只想将Date作为时间戳保存在Firestore数据库中,但它将时间戳存储为数字:

save() {
    const data = this.transactionForm.value;
    data.type = data.type == 'true' || data.type == true ? true : false;
    data.updated = firebase.firestore.FieldValue.serverTimestamp();
    // Date string to timestamp
    data.date =  new Date(data.date.split("-").reverse().join("-")).getTime();
    let id = data.id;
    this.transCollection.doc(id).update(data);
}  

2 个答案:

答案 0 :(得分:0)

  unixToTimestamp() {
    const date = new Date();
    const hours = date.getHours();
    const minutes = date.getMinutes();
    const seconds =  date.getSeconds();
    const day = date.getDate();
    const month = date.getMonth() + 1;
    const year = date.getFullYear();

    console.log(hours + ':' + minutes + ':' + seconds);
    console.log(day + '/' + month + '/' + year);
  }

我在打字稿中对此进行了尝试,并得到以下输出:

11:25:07
19/11/2018

通过这种方式,您可以选择创建时间戳并将其保存在Firestore中的方式

您也可以按所需的方式每月打印一次。

const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

const month = months[date.getMonth()];

这是因为date.getMonth()获取索引,这就是为什么我使用+1来获取一个月的原因。

答案 1 :(得分:0)

我在Firebase中使用时间戳记,并且我知道它用于将日期存储在数字中的long中。所以我不知道Firestore中是否一样。