每日签到功能怎么实现的?_PHP_编程问答

每日签到功能怎么实现的?

来源:互联网  时间:2018/1/28 16:13:04

关于网友提出的“ 每日签到功能怎么实现的?”问题疑问,本网通过在网上对“ 每日签到功能怎么实现的?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 每日签到功能怎么实现的?
描述:

怎么知道一个时间戳是不是新的一天呢 怎么让签到过的灰色按钮过了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;
}

上一篇Ngnix 网站访问报 No input file specified,重启 php-fpm 就正常,但过几分钟后就又报同样错误
下一篇php 如何获取里面相同的项
明星图片
相关文章
《 每日签到功能怎么实现的?》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)