您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> 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;
}


以上介绍了“ 每日签到功能怎么实现的?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4536867.html

相关图片

相关文章