Re: [請益] 登入累加

作者: NioTW (Nio)   2015-04-07 23:00:16
※ 引述《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 更新表中資料就行了。
作者: shadowjohn (轉角遇到愛)   2015-04-08 00:17:00
這方法真不錯~
作者: xdraculax (首席怪叔叔)   2015-04-08 09:37:00
是要計算連續登入天數,要比較日期不能比較秒數差 0.0
作者: shadowjohn (轉角遇到愛)   2015-04-08 14:10:00
說的也是!
作者: NioTW (Nio)   2015-04-08 22:57:00
用date相減也行。但兩天相隔不會大於86400秒,用數字相減省下函式轉換
作者: shadowjohn (轉角遇到愛)   2015-04-09 00:55:00
不知道能不能在SQL中就解決~應該可以呦..
作者: NioTW (Nio)   2015-04-09 01:11:00
這題目沒有防弊要求,考量有在零點前後登入賺取連續2天登入的需求,用日期計算就好mysql 可用 datediff 計算

Links booklink

Contact Us: admin [ a t ] ucptt.com