2013-05-05 8 views
13

Sono nuovo di Firebase e mi chiedevo come posso memorizzare una data JavaScript e utilizzare Firebase per confrontarli sul lato client in seguito?Firebase new Date()?

voglio fare qualcosa di simile:

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

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

Tuttavia, torno un valore di null dalla fotografia?

risposta

17

È inoltre possibile utilizzare la data/ora.

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

Inoltre, a meno che entrambe le date non siano dello stesso client, probabilmente vorrai consultare '.info/serverTimeOffset' e aggiungerlo al timestamp:' new Date(). GetTime() + offset'; altrimenti otterrai qualche stranezza per gli utenti che non mantengono sincronizzato l'orologio entro un secondo dal tempo atomico – Kato

+0

grazie per le risposte e gli esempi di codice! Lo apprezzo molto! – TriFu

-3

È necessario impostare un Firebase con stringa o oggetto con valore e quindi leggere lo stesso valore nell'evento.

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

Il confronto di date come stringhe non consente di ottenere un confronto di data corretto, quindi probabilmente vorrai utilizzare l'approccio di data/ora consigliato da @ghost. –

Problemi correlati