使用记录21_凌晨更新的时间逻辑

转载自 https://blog.csdn.net/haibo19981/article/details/80452641

1.每周末凌晨更新
var lastGameTime = cc.sys.localStorage.getItem("2048_zhb_lastGameTime"); //上一次游戏的时间
if(!(lastGameTime == null || lastGameTime == undefined || lastGameTime === "")){ //有记录时间
    //记录的时间的星期、时、分、秒
    var date = new Date(lastGameTime);
    var week = date.getDay(); //0-6
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    //console.log("game记录的时间:week=" + week + ",hour=" + hour + ",minute=" + minute + ",second=" + second);
    //记录的时间所在周日晚上12点的毫秒数
    var deltaTime = 0;
    if(week == 0){ //周日
        deltaTime = (24 - hour) * 60 * 60 -  minute * 60 - second;
    }else{ //周1-6
        deltaTime = (7 - week) * 24 * 60 * 60 + (24 - hour) * 60 * 60 -  minute * 60 - second;
    }
    var targetTime = lastGameTime + deltaTime * 1000;
    //console.log("game targetTime=" + targetTime);
    //现在的时间的毫秒数
    var nowTime = Date.now();
    //console.log("game nowTime=" + nowTime);
    //若 现在的时间的秒数 > 记录的时间所在周日晚上12点的秒数 则 清0 本周最高分
    if(nowTime > targetTime){
        cc.sys.localStorage.setItem('2048_zhb_bestScoreWeek', 0)
        console.log("game本周最高分 被清0");
    }   
}
cc.sys.localStorage.setItem('2048_zhb_lastGameTime', Date.now());

2.每天凌晨更新
var lastGameTime = cc.sys.localStorage.getItem("zqddn_zhb_lastGameTime"); //上一次游戏的时间
if(!(lastGameTime == null || lastGameTime == undefined || lastGameTime === "")){ //有记录时间
    //记录的时间的时、分、秒
    var date = new Date(lastGameTime);
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    //console.log("game记录的时间:hour=" + hour + ",minute=" + minute + ",second=" + second);
    //记录的时间晚上12点的毫秒数
    var deltaTime = (24 - hour) * 60 * 60 -  minute * 60 - second;
    var targetTime = lastGameTime + deltaTime * 1000;
    //console.log("game targetTime=" + targetTime);
    //现在的时间的毫秒数
    var nowTime = Date.now();
    //console.log("game nowTime=" + nowTime);
    //若 现在的时间的秒数 > 记录的时间晚上12点的秒数 则 恢复满 转盘可旋转次数
    if(nowTime > targetTime){
        cc.sys.localStorage.setItem('zqddn_zhb_luckDialCount', 5)
        console.log("转盘可旋转次数 恢复满");
    }   
}
cc.sys.localStorage.setItem('zqddn_zhb_lastGameTime', Date.now());

3.每天凌晨更新的函数版本
checkWeeHours: function(lastTime, today){ //检查是否过了记录时间的凌晨(today为true,表示判断记录时间是否在当天内)
    console.log("检查是否过了记录时间的凌晨:");
    var lastTime = parseInt(lastTime);
    var ret = false;
    //检查前1天领取时间的时、分、秒
    var date = new Date(lastTime);
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    //记录的时间晚上12点的毫秒数
    var deltaTime = (24 - hour) * 60 * 60 -  minute * 60 - second;
    var targetTime = lastTime + deltaTime * 1000;
    //现在的时间的毫秒数
    var nowTime = Date.now();
    if(today){ //判断记录时间是否在当天内
        var date1 = new Date(nowTime);
        var hour1 = date1.getHours();
        var minute1 = date1.getMinutes();
        var second1 = date1.getSeconds();
        var deltaTime1 = (24 - hour) * 60 * 60 -  minute * 60 - second;
        var now0 = nowTime - (24 * 60 * 60 - deltaTime1) * 1000; //今天的0点
        var now24 = nowTime + deltaTime1 * 1000; //今天的24点
        ret = (lastTime > now0 && lastTime < now24) ? true : false; //大于今天的0点,小于今天的24点
        console.log("判断记录时间是否在当天内:" + ret);
    }else{ //检查是否过了记录时间的凌晨
        ret = nowTime > targetTime ? true : false; //若 现在的时间的秒数 > 记录的时间晚上12点的秒数 则 为true
        console.log("检查是否过了记录时间的凌晨:" + ret);
    }
    return ret; 
},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值