转载自 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;
},