1
votes

Comment comparer les horodatages Firebase?

J'ai un code de code de fonction cloud comme celui-ci:

console.log(`ts: ${(element.get('expire') as admin.firestore.Timestamp).toDate().toUTCString()} now: ${admin.firestore.Timestamp.now().toDate().toUTCString()}`)
const greater = (element.get('expire') as admin.firestore.Timestamp) > admin.firestore.Timestamp.now()
const lower = (element.get('expire') as admin.firestore.Timestamp) < admin.firestore.Timestamp.now()
console.log(`greater: ${greater} lower: ${lower}`)

Dans la console:

ts: lun, 08 avril 2019 20:59:59 GMT maintenant: ven, 08 mars 2019 20:19:18 GMT

supérieur: faux inférieur: faux

Alors, comment comparer correctement les horodatages?


0 commentaires

3 Réponses :


4
votes

Vous pouvez le faire en comparant les secondes < / a> et nanosecondes sur le Objets d'horodatage. Ou, pour simplifier les choses, et vous n'avez pas besoin d'une précision à la nanoseconde, vous pouvez simplement comparer les résultats des résultats de leur toMillis () valeurs.


2 commentaires

Merci. C'est la seule solution pour comparer les millisecondes.


est-il possible de créer un index pour les horodatages Firebase?



-1
votes

Avez-vous essayé de transformer vos horodatages en un objet Date pour pouvoir ensuite simplement comparer des dates au lieu des horodatages?

Par exemple:

const greater = new Date(element.get('expire') as admin.firestore.Timestamp) > new Date();
const lower = new Date(element.get('expire') as admin.firestore.Timestamp) < new Date();


0 commentaires

3
votes

À partir de la version 7.10.0 du SDK, vous pouvez comparer directement les objets Timestamp avec les opérateurs de comparaison d'inégalités arithmétiques JavaScript ( <, <= , > , et > = ).

Pour vérifier si deux objets Timestamp sont temporellement identiques, vous devez utiliser la propriété isEqual ( docs ). La comparaison avec == ou === ne vérifiera pas l'égalité temporelle - renvoyant false si vous comparez différentes instances d'objet.

Notes de version du SDK ici .

Extrait de code extrait du problème GitHub correspondant :

< pré> XXX


0 commentaires