2013-05-05 3 views
13

Я новичок в Firebase, и мне было интересно, как я могу хранить дату JavaScript и использовать Firebase для сравнения их на стороне клиента позже?Firebase new Date()?

Я хочу сделать что-то вроде:

var someDate = new Date(); 
myRootRef.set(someDate); 

myRootRef.on('value', function(snapshot) { 
    var currDate = new Date(); 
if (currDate >= snapshot.val()){ 
    //do something 
} 

Однако я возвращусь значение null из снимка?

ответ

17

Вы также можете использовать временную метку.

var timestamp = new Date().getTime(); 
myRootRef.set(timestamp); 

myRootRef.on('value', function(snapshot) { 
    var currDate = new Date(); 
    var snapshotTimestamp = snapshot.val(); 

    //you can operate on timestamps only... 
    console.log("Snapshot timestamp: " + snapshotTimestamp); 

    if(currDate.getTime() >= snapshotTimestamp) { 
     //do something 
    } 

    //...or easily create date object with it 
    console.log("Snapshot full date: " + new Date(snapshotTimestamp)); 

    if (currDate >= new Date(snapshotTimestamp)){ 
     //do something 
    } 

}); 
+3

Кроме того, если обе даты не принадлежат одному клиенту, вы, вероятно, захотите обратиться к '.info/serverTimeOffset' и добавить это к метке времени:' new Date(). GetTime() + offset'; в противном случае вы получите некоторую странность для пользователей, которые не синхронизируют свои часы в течение секунды атомного времени. – Kato

+0

спасибо за ответы и образцы кода! Я очень ценю это! – TriFu

-3

Вам необходимо установить Firebase со строкой или объектом со значением, а затем прочитать одно и то же значение в событии.

var someDate = new Date(); 
    myRootRef.set({Date: someDate.toString()}); 

    myRootRef.on('value', function(snapshot) { 
    var msg = snapshot.val(); 
    var currDate = new Date(); 
    if (currDate >= msg.Date){ 
    //do something 
    } 
    }); 
+0

Сравнивая даты, поскольку строки не достигнут правильного сопоставления даты, поэтому вы, вероятно, захотите использовать подход временной отметки по рекомендации @ghost. –

Смежные вопросы