3
votes

comparer la date et l'heure dans JS

J'authentifie l'utilisateur en utilisant oAuth2 qui me donne un jeton d'expiration.

Le jeton d'expiration est pour 3600 (ce qui signifie une heure, selon la norme oauth)

Maintenant, lorsque le jeton expire, je souhaite utiliser le jeton d'actualisation pour obtenir un nouveau jeton d'accès.

Pour voir si le jeton a expiré, je pense à stocker la valeur de Date.now () actuelle et la valeur de Date.now () après une heure.

Le problème est que date.now () donne une valeur en long int ie

let date = Date.now() 
console.log(date)

Maintenant, je suis incapable de comprendre comment je peux comparer le temps ici. Quelqu'un peut-il m'aider.


0 commentaires

4 Réponses :


2
votes

utilisez new Date () à la place de Date.now ()

selon MDN

Si aucun argument n'est fourni, le constructeur crée un JavaScript Objet de date pour la date et l'heure actuelles selon les paramètres système pour le décalage du fuseau horaire.

alors les dates peuvent être directement comparées à l'aide des opérateurs > et <


0 commentaires

0
votes
var time=new Date()
var now=String(time.getHours())+":"+String(time.getMinutes())+":"+String(time.getSeconds());
This will give you the time in H:M:S.
Format and this will be string.

0 commentaires

1
votes

Voici un exemple où comparer la date:

Date.prototype.addHours= function(h){ //simulation after 1 hour
    this.setHours(this.getHours()+h);
    return this;
}

var dateOld = new Date();
var dateNow = new Date().addHours(1);//test after 1 hour

//output: false
console.log(dateOld.getTime() === dateNow.getTime());//compare the date

J'espère que cela vous aidera


0 commentaires

1
votes

Puisque Date.now renvoie une valeur d'heure et qu'il y a toujours exactement 3,6e6 ms dans une heure ECMAScript, vous pouvez simplement ajouter 3,6e6 pour obtenir la valeur d'heure en une heure, par exemple

var now = Date.now();
var expires = now + 3.6e6;

console.log(`expired yet? ${now > expires}`);
console.log(`now    : ${new Date(now).toLocaleString()}\nexpires: ${new Date(expires).toLocaleString()}`);


0 commentaires