前端token需要每两个小时刷新一次。就用到了时间判断格式。需要js对时间对象有一定的了解,写项目用到了两种格式的解析方式。
先上函数代码
第一种相对简单,传入时间格式为标准格式:Wed, 01 Jan 2020 00:00:00 GMT
function check(time) {
var time1 = new Date(time) //这个格式直接传入对象就好。
var date2=new Date();
return date2.getTime()-time1.getTime()-(1000*60*60)<0?'unoverdue':'overdue';
}
第二种传入的时间格式 2020-1-1
function check(time) {
time = time.replace(/-/g,':').replace(' ',':');
time = time.split(':');
var time1 = new Date(time[0],(time[1]-1),time[2],time[3],time[4]); //这以上都是解析2019-1-1这个时间格式的代码
var date2=new Date();
return date2.getTime()-time1.getTime()-(1000*60*60)<0?'unoverdue':'overdue'; //判断是否超过两个小时。
}
js中的时间对象部分知识点
知识点引用链接 javascript 标准参考教程(alpha) -阮一峰
之后的零点都是指1970年一月一日零时零分零秒
Date对象在js里是按毫秒计算的。可以表示1970年1月1日前后一亿天
- 把Date当普通函数用时,Date(),返回的是当前时间,就算带着时间参数也是一样的。
- 把Date当作构造函数时,new Date(),可以带时间参数,会将时间解析为当前时区时间。
- 第一种可以带入负数,表示1970年元旦前的时间。
- 第二种表示方法只要可以被Date.parse()解析的时间都可以带入:
- 最后一个使用方法顺序为。年,月,日,时,分,秒。月的表示从零开始。这些参数如果超过了正常范围,会自动折算
- 日期的运算
如果两个时间静态实例对象相加,是两个字符串的相加;如果两个时间静态实例对象相减,是两个时间毫秒数相减。 - 静态方法
- Date.now()返回距离零点的当前毫秒数。
- Date.parse()解析时间字符串,返回距离零点的毫秒数。日期字符串按理说应该符合RFC 2822 和 ISO 8061(即YYYY-MM-DDTHH:mm:ss.sssZ),一般正常的时间字符串都可以解析,但如果不能解析或解析错误会返回NAN。
- Date.UTC()接受年、月、日等变量作为参数,同样返回距零点的毫秒数。会将时间解析为世界标准时间。