2011-07-13 79 views
0

我在創建帶有時間戳的小型會員系統時遇到了一些問題。當我在日期中顯示時間戳時,它會告訴我活動成員資格何時到期。但是,在該時間/日期,它不會過期,並且重置成員資格的腳本將從-NUMBERHERE開始計數。PHP時間戳/會員系統未在確切日期過期

我不覺得我做錯了什麼?我正在做(time() - $timestamp)工作。這是我的劇本;

$membership = mysql_query("SELECT * FROM `members` WHERE `membership` > 0 AND `membertype` > 0") or die(mysql_error()); 
while($mm = mysql_fetch_array($membership)){ 

    if((time() - $mm["membership"]) > $mm["membertype"]){ 
    mysql_query("UPDATE `members` SET `membership` = 0, `membertype` = 0 WHERE `username` = '" . $mm[username] . "'"); 
    } else { 
    echo (time() - $mm["membership"]); 
    } 

} 

$membership_date = date("d-m-Y H:i:s", $user["membership"]); 
echo "Your membership expiry date: $membership_date"; 

它確實到期,但過期很晚。任何幫助將是偉大的,謝謝。

P/S:membertype變量是直到它過期的秒數。

+1

什麼失敗時到底是什麼?你能舉個例子嗎? –

+0

http://pastebin.com/XsJrsKv0 當我刷新文件以便在確切的時間戳上更新它需要過期時,它不會因爲它也從-NUMBEROFSECONDS – Joshua

+0

開始計數我不確定這可以是在不知道$ mm ['membership']'實際包含的情況下診斷。但是,我敢說,應該在最初設置該變量的位置檢查問題。 – eykanal

回答

2

當創建一個用戶:

$membership = time() + $membertype; 

然後設置您的查詢和執行。

當檢索用戶:

替換該行

if((time() - $mm["membership"]) > $mm["membertype"]){ 

與此:

if(time() >= $user["membership"]) 
+0

我從來沒有想過,哈哈。我的大腦顯然與其他人不同。謝謝你,安迪。 – Joshua