开发一个签到模块,签到周期为30天,现有需求连续签到多少天后有奖励可以领取,如果中间有一天断签,则记连续签到从0开始,每30天算一个周期,如何判断是否连续,并判断连续的时长满不满足要求
开发一个签到模块,签到周期为30天,现有需求连续签到多少天后有奖励可以领取,如果中间有一天断签,则记连续签到从0开始,每30天算一个周期,如何判断是否连续,并判断连续的时长满不满足要求
签到的时候拿出上一次签到的日期
如果是昨天以前肯定断了
如果是昨天,今天签到,那就接上了
另外数据表新增一个连续签到天数,只要没断,就在上次的基础上加1,断了就重新来
在做签到累加的时候就做判断,当前签到的日期是不是最后签到日期+1,如果是那就做累加,不是就重置为0
至于如何判断“当前签到的日期等于最后签到日期+1”,给你个示例代码:
$lastDateHistory = '2012-02-29'; // 假设这是从记录中取出的最后一次签到日期
$currentDate = '2012-03-01'; // 手动假写当前日期,实际应该等于 date('Y-m-d');
echo date('Y-m-d',strtotime("$currentDate -1 day")); // 返回值是当前日期的前一天
2 回答1.3k 阅读✓ 已解决
2 回答824 阅读✓ 已解决
1 回答903 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答882 阅读
1 回答873 阅读
1 回答803 阅读
不能换一种思路吗?
比如单独设计一个 XX签到表
字段:id-uid-time
用户签到动作时:
至于如何判断连续 7 天签到,我这提供一个思路,仅供参考:
判断用户签到表中最近 7 条数据是否均为 7 天内的数据。哈哈逃(其实是可行的)。
所以,重点还是思路。。。