如何在Angular Firestore中将日期另存为时间戳?

时间:2019-10-12 16:53:36

标签: angular typescript google-cloud-firestore timestamp angularfire2

firestore.Timestamp.now();

我尝试过这种方式,并将日期保存为地图。

nanoseconds: 388000000
seconds: 1570897877

纳秒和秒类型是数字。

我想使用角度将日期另存为Firestore时间戳。我发现重复的问题却没有被接受的答案。

3 个答案:

答案 0 :(得分:1)

您可以使用firebase.database.ServerValue.TIMESTAMP

导入 firebase

import * as firebase from 'firebase';

初始化

firebase.initializeApp(environment.firebase);

然后您可以使用

firebase.database.ServerValue.TIMESTAMP

以毫秒为单位获取时间戳

现在,如果要将时间戳保存为日期,只需将时间戳立即转换为所需格式,然后将其保存到数据库中

db.object("collection").set(moment(firebase.database.ServerValue.TIMESTAMP).toDate());

答案 1 :(得分:1)

如果要将当前时间添加为Firestore文档中的时间戳记值,可以使用Doug提到的FieldValue.serverTimestamp()进行添加,如以下示例所示:

import * as firebase from 'firebase';
[ . . . ]
db.collection('times').add({time: firebase.firestore.FieldValue.serverTimestamp()});

如果要获取特定时间,可以创建一个新的Date对象,并使用其上的函数toDateString()将其添加到Firestore中,如下所示:

import * as firebase from 'firebase';
[ . . . ]
date = new Date('2018-11-16T09:48:51.137Z'); //sample date
this.db.collection('times').add({spec_time: this.date.toDateString()});

答案 2 :(得分:1)

import * as firebase from 'firebase';

...


const data = {
    createdAt: firebase.default.firestore.FieldValue.serverTimestamp(),
};

这段代码对我有用。 重要的部分是来自根 firebase 对象的 .default