如何在Firestore.FieldValue.Timestamp上使用toDate()方法?
如何在Firestore.FieldValue.Timestamp上使用toDate()方法?
我正在尝试从一个具有时间戳数据字段的firestore数据库中填充一个表:
使用以下web代码:
firebase.initializeApp(firebaseConfig); const attendanceCollection = firebase.firestore().collection("attendance"); var lastIndex = 0; function getData() { var htmls = []; attendanceCollection.get().then(querySnapshot => { querySnapshot.forEach(doc => { console.log(`${doc.id}`); console.log(`${(doc.data().GENERALASSEMBLY)}`) htmls.unshift('\ '); }); $('#tbody').html(htmls); $("#submitUser").removeClass('desabled'); }); };'+ `${doc.id}` +' \ \ \
返回结果如下:
我找到了一些参考资料,但实际上没有帮助我解决我想要实现的问题:
如何从新的`firebase.firestore.FieldValue.serverTimestamp()`获取JavaScript Date对象
如何将Firestore日期/时间戳转换为JS Date()?
我该如何在上述代码中实现toDate()?你能给我使用toDate()将firestore时间戳转换为日期/字符串的示例吗?
问题的原因是使用Firestore.FieldValue.Timestamp对象上的toDate()方法时出现错误。解决方法是使用date-fns库的fromUnixTime函数将时间戳转换为Date对象,然后再使用format函数格式化日期。
在使用Firestore的FieldValue.Timestamp时,有时需要将时间戳转换为Date对象以进行进一步的操作。然而,如果直接使用toDate()方法,可能会出现错误。为了解决这个问题,可以使用date-fns库中的fromUnixTime函数将时间戳转换为Date对象,然后再使用format函数对日期进行格式化。
示例代码如下:
// 引入date-fns库 const { fromUnixTime, format } = require('date-fns'); // 假设GENERALASSEMBLY.seconds是一个时间戳 const timestamp = GENERALASSEMBLY.seconds; // 使用fromUnixTime将时间戳转换为Date对象 const date = fromUnixTime(timestamp); // 使用format函数格式化日期 const formattedDate = format(date, 'yyyy-MM-dd HH:mm:ss'); console.log(formattedDate);
通过以上代码,我们可以成功将时间戳转换为Date对象,并且格式化输出了日期。这样就解决了使用toDate()方法时可能出现的错误。
希望以上内容对解决"如何在Firestore.FieldValue.Timestamp上使用toDate()方法"的问题有所帮助。通过使用date-fns库的fromUnixTime和format函数,我们可以轻松地处理时间戳和日期的转换和格式化。