Re: [請益] 請問連續登錄天數要怎麼判斷比較合理

看板PHP作者 (十三夜)時間13年前 (2011/01/13 13:50), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串3/6 (看更多)
※ 引述《knives ()》之銘言: : 我想要做一個記錄連續登入的天數的功能 : 比方說某user從星期一到星期四都有進來網站 : 可是星期五那天中斷,到了星期六或星期天才進來網站 : 那連續登入的天數就變回 1 : 我在資料庫有記錄 某user上次進來的網站的時間unix stamp : 那麼我要怎麼判斷這次進來是恰好是隔天,才算連續登入 : 我目前是這樣寫 : $lastdate = strtotime (gmdate('Y-m-d',$lastlogin))/86400; : $nowdate = strtotime (gmdate('Y-m-d',$nowlogin) )/86400 ; 新手學php不負責講座 不要用除, 第一步切割用字串把幾號切出來 EX: $lastloginday = 01 $nowday = 02 看你系統紀錄的時間格式是哪種 是 2010/01/01 你就直接切割出01就好 是 2010/1/1 你就要判斷如何切 我的做法會是一開始記錄時間的時候就把0的部分都補上去 另個需要注意的地方是 遇到月底的時候 2010/01/31 你就要先判斷月 再判斷日 大概觀念應該是假設一月底 我就把31號變成0號 則下次登入1號 - 0號還是小於等於1 細節怎優話就自己想 if($lastloginmonth = 01 && $lastloginday = 31) {$lastloginday = 0} : if( intval($nowdate - $lastdate) == 1 ) : { //這次時間-上次時間,如果 = 1 就算過一天 : } : 可是總覺得有些問題,不知道怎麼寫比較好 : 謝謝 if( intval($nowdate - $lastdate) <= 1 ) { 還沒過一天 } 小於等於是不是這樣用我也忘了...應該是吧 真的不行再問我 我在寫清楚點 -- 最喜歡的一句話是? 世界和平 最尊敬的人是? 德蕾莎修女 請說一句話。 大家都要幸福喔~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.69.180.235

01/13 14:14, , 1F
直接取絕對值如何
01/13 14:14, 1F

01/13 14:23, , 2F
推樓上 abs(strtotime($ts1, $ts2)) < 86400
01/13 14:23, 2F

01/13 14:25, , 3F
$ts1 & $ts2是timestamp 昏了 strtotime 拿掉
01/13 14:25, 3F
文章代碼(AID): #1DBfAY37 (PHP)
討論串 (同標題文章)
文章代碼(AID): #1DBfAY37 (PHP)