作者NioTW (Nio)
看板PHP
标题Re: [请益] 登入累加
时间Tue Apr 7 23:00:16 2015
※ 引述《vincent20384 (风之水漾)》之铭言:
: 各位大大好
: 目前我想写一个功能是能够记录每天登入的会员
: 是连续登入了几天
: 然後依据第几天跑出不同的讯息这样
: 可以给我一点方向吗?
如果只要计算连续登入几天,超过1天就重新计算。
这样的需求很简单,
首先有张表基本纪录: user_id , last_time, login_num
last_time 使用时间戳就好。
在登入时抓当时时间 $now=time();
并取表中会员纪录。
$R= $now - $last_time;
if( $R > 86400 ) { // 大於一天的才处理
if ( $R < 86400*2){
// 介於 24~48小时视为连续登入
$login_num +=1;
}
else {
//超过 48小时重新计算
$login_num = 1;
}
}
比对 $login_num 就是连续登入天数。
最後记得把 $now 和 $login_num 更新表中资料就行了。
--
Sent from my Android
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.15.192.26
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1428418818.A.AF5.html
1F:推 shadowjohn: 这方法真不错~ 04/08 00:17
2F:→ xdraculax: 是要计算连续登入天数,要比较日期不能比较秒数差 0.0 04/08 09:37
3F:推 shadowjohn: 说的也是! 04/08 14:10
4F:→ NioTW: 用date相减也行。但两天相隔不会大於86400秒,用数字相减 04/08 22:57
5F:→ NioTW: 省下函式转换 04/08 22:57
6F:推 shadowjohn: 不知道能不能在SQL中就解决~应该可以呦.. 04/09 00:55
7F:→ NioTW: 这题目没有防弊要求,考量有在零点前後登入赚取连续2天登入 04/09 01:11
8F:→ NioTW: 的需求,用日期计算就好 04/09 01:11
9F:→ NioTW: mysql 可用 datediff 计算 04/09 01:15