常用到的地方比如:JSON.stringify() ; 得到两个时间戳求这段时间的值

455 阅读3分钟

JSON.stringify()多用于localStorage设置本地缓存,以及跟后台data交互时往处理数据格式,缓存储存的东西不管true还是false 都是字符串

window.localStorage.setItem("dragon",{name:"wan"})  // 本意是往浏览器储存 key:"dragon",value:{name:"wan"}
window.localStorage.getItem("dragon")               // 得到的却是 "[object Object]" 和我们预期的值有出入

window.localStorage.setItem("dragon",JSON.stringify({name:"wan"}))   // 要先obj转成JSON字符串
window.localStorage.getItem("dragon")    // 得到 "{"name":"wan"}" => JSON字符串
JSON.parse('{"name":"wan"}')             // 得到 Object {name: "wan"} JSON字符串 转成 obj对象形式

JSON.parse('["asd","1111",32]')          // 得到 ["asd", "1111", 32] 解析成了数组

JSON.parse('{"name":"wan"}',function(key,val){……………………})   // 第二个参数是个函数,通过第一个参数的键值对可以做一些数据上的处理

根据当前时间 new Date(),以及另一个时间戳,相减求这段时间的距离

一天的时间 = 24小时x60分钟x60秒x1000毫秒 == 86400000

new Date() => Fri Jul 13 2018 07:54:40 GMT+0800 (中国标准时间)
new Date().getTime() => 1531439720243
new Date().getFullYear() => 2018
new Date().getMonth() => 6     // 得到的月份 +1 就是现在实际的月份 7new Date().getDate() => 13
new Date('2018-7-12') 与 new Date('2018/7/12') 与 new Date('2018/07/12') 
=> 输出的都是Thu Jul 12 2018 00:00:00 GMT+0800 (中国标准时间)   0点
但是:new Date('2018-07-12')
=> 输出的却是Thu Jul 12 2018 08:00:00 GMT+0800 (中国标准时间)   8点

起初做东西的时候,没太过留意其中的区别,后来得出的时间,让我一脸懵逼,所以以后我们计算时间时要记得replace(/-/ig,"/")
function getTime(lastTime){
    // 就如上面所说new Date('2018-07-12') 与 new Date('2018/07/12')的区别,网上的答案很多都是替换了的,但是要亲自去体验下才能了解为什么要替换
    var s1 = new Date(lastTime.replace(/-/ig,"/"));   
    var s2 = new Date();
    runTime = parseInt((s2.getTime() - s1.getTime()) / 1000);   // 得到总共几秒
    
    var year = Math.floor(runTime / 86400 / 365);               // 得到多少年
    var runTimeYear = runTime % (86400 * 365);                  // 模年之后余下的秒数
    
    var month = Math.floor(runTimeYear / 86400 / 30);           // 得到多少个月
    var runTimeMonth = runTime % (86400 * 30);                  // 模月之后余下的秒数
    
    var day = Math.floor(runTimeMonth / 86400);                 // 得到多少天
    var runTimeDay = runTime % 86400;                           // 模天之后余下的秒数
    
    var hour = Math.floor(runTimeDay / 3600);                   // 得到多少小时
    var runTimeHour = runTime % 3600;                           // 模小时之后余下的秒数
    
    var minute = Math.floor(runTimeHour / 60);                  // 得到余下多少分钟
    var runTimeMinute = runTime % 60;                           // 模分钟之后余下的秒数
    
    var second = runTimeMinute;                                 // 余下的秒数
    return year+','+month+','+day+','+hour+','+minute+','+second;
} 

//当前时间与2018-05-10的时间差
var lastTime = "2018-06-20";
console.log(getTime(startTime));

结语

前端react QQ群:788023830 ---- React/Redux - 地下老英雄

前端交流QQ群:249620372 ---- FRONT-END-JS前端

(我们的宗旨是,为了加班,为了秃顶……,仰望大佬),希望小伙伴们加群一起学习