前言
我们经常用到的token
还是cookie
,都默认有一个过期时间
我们做鉴权的时候,很依赖这个,所以捣鼓下能不能再严谨点
因为之前都是以后台固定的格式,直接拿到值做一个简单的判断;
那,假如后台传过来的日期格式变了呢!!有兴趣的瞧瞧。
前置基础
jest
: 这个测试框架非常不错,Facebook 出品ES5
&&ES6
Typescript
我们不讲配置,也不讲其他琐碎,只说实现过程
思路分析
重心其实就是围绕传参来执行
- 判断参数的类型,只考虑两种情况
- 数字: 验证是否为一个正确的时间戳!!!
- 字符串: 验证是否是一个
datetime
格式,亦或者可以转换成识别的格式(比如 2018/08/01) - 类型的转换及比较
- 最后返回布尔值,来确定该值是否有效
效果图
代码实现
代码不多,只涵盖了这么几种情况,具体看测试的文字描述
js 版本
isDate.js
, 暴露isDate
函数,接收一个参数
function checkDateTime(d) {
const _date = new Date(d);
const Now = new Date().getTime();
const DiffTime = _date.getTime() - Now;
if (
_date.getFullYear() === 1970 ||
_date.getFullYear() < new Date().getFullYear()
) {
// 若是传入的时间转换成1970年...那肯定不是我们后台要传的时间
// 小于这个年份的也必然不是,谁的后台token过期时间超过一年的...
return false;
}
if (DiffTime > 60000) {