我正在使用oAuth2对用户进行身份验证,这会给我到期令牌。
有效期令牌为3600(根据oauth标准,这表示一小时)
现在,当令牌到期时,我想使用刷新令牌来获取新的访问令牌。
要查看令牌是否已过期,我正在考虑一小时后存储当前Date.now()和Date.now()的值。
问题是date.now()
以long int形式赋值,即
let date = Date.now()
console.log(date)
现在,我无法理解如何在这里比较时间。谁能帮我。
答案 0 :(得分:2)
使用Date.now()的new Date()
接口
按照MDN
如果未提供任何参数,则构造函数将创建一个JavaScript 根据系统设置的当前日期和时间的日期对象 时区偏移。
然后可以使用>
和<
运算符直接比较日期
答案 1 :(得分:1)
下面是一个比较日期的示例:
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
希望这会有所帮助
答案 2 :(得分:1)
由于 Date.now 返回一个时间值,并且ECMAScript小时始终精确地存在3.6e6毫秒,因此您只需添加3.6e6即可在一小时内获得时间值,例如
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()}`);
答案 3 :(得分:0)
var time=new Date()
var now=String(time.getHours())+":"+String(time.getMinutes())+":"+String(time.getSeconds());
这将使您有时间在H:M:S。 格式化,它将是字符串。