关于网友提出的“ 每日签到功能怎么实现的?”问题疑问,本网通过在网上对“ 每日签到功能怎么实现的?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 每日签到功能怎么实现的? 描述:
怎么知道一个时间戳是不是新的一天呢 怎么让签到过的灰色按钮过了0点再变回绿色呢?
解决方案1:
签到记录表每次签到存一条数据 用户表添加字段最后签到时间 要判断就直接在用用户表的最后签到时间做判断.
解决方案2:
个人建议: 1.利用redis 做一个签到日志,用户的标识为key 签到时间为值 存储 2.判断的时候直接去redis中获取 如果有 这按钮是 变灰 3.然后跑一个计划任务,每天0点的时候,把redis中 一天的数据 同步到 数据库记录表中,然后清空 redis中的记录
解决方案3:
判断某天有没有签过的还不简单, 数据库查询某天(00:00-23:59)有没有签到数据就行啊 有就置灰,没有就变绿色。
//伪代码
$signTime = time();//任意时间戳
$startTime = mktime(0,0,0,date("d",$signTime),date("m",$signTime),date("Y",$signTime));
$endTime = mktime(23,59,59,date("d",$signTime),date("m",$signTime),date("Y",$signTime));
//查询签到数据
if(Model('签到表')->whereBetween('签到时间',[$startTime,$endTime])->get())
{
//置灰
$hasSigned = true;
}
else
{
//绿色
$hasSigned = false;
}
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!