看板 PHP 關於我們 聯絡資訊
※ 引述《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
knives:直接取絕對值如何 01/13 14:14
Jerr:推樓上 abs(strtotime($ts1, $ts2)) < 86400 01/13 14:23
Jerr:$ts1 & $ts2是timestamp 昏了 strtotime 拿掉 01/13 14:25