如何在Firestore.FieldValue.Timestamp上使用toDate()方法?

8 浏览
0 Comments

如何在Firestore.FieldValue.Timestamp上使用toDate()方法?

我正在尝试从一个具有时间戳数据字段的firestore数据库中填充一个表:

https://i.stack.imgur.com/LJCi4.png

使用以下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('\
                '+ `${doc.id}` +'\
                '+ `${(doc.data().GENERALASSEMBLY)}` +'\
                '+ `${doc.id}` +'\
            ');
        });
        $('#tbody').html(htmls);
    $("#submitUser").removeClass('desabled');
    });
};

返回结果如下:

https://i.stack.imgur.com/VvsvM.png

我找到了一些参考资料,但实际上没有帮助我解决我想要实现的问题:

如何从新的`firebase.firestore.FieldValue.serverTimestamp()`获取JavaScript Date对象

如何将Firestore日期/时间戳转换为JS Date()?

我该如何在上述代码中实现toDate()?你能给我使用toDate()将firestore时间戳转换为日期/字符串的示例吗?

0
0 Comments

问题的原因是使用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函数,我们可以轻松地处理时间戳和日期的转换和格式化。

0
0 Comments

toDate()是用来将GENERALASSEMBLY字段的值转换为日期格式的方法。由于在第一个事件触发时,该字段的初始值为null,因此您还需要先检测GENERALASSEMBLY是否为null

解决方法如下:

${(doc.data().GENERALASSEMBLY ? doc.data().GENERALASSEMBLY.toDate() : "-unknown-")}

谢谢!这个方法可行,我想知道-uknown-是什么意思?

这只是在没有日期时要打印的内容。您可以根据您的用例将其替换为任何其他内容。

0