2011-07-01 114 views
2

我正在創建我自己的一分錢拍賣腳本。我正在嘗試讓倒數計時器起作用。由於div無論如何都會刷新每一秒,所以我不需要使用jquery計時器,我可以在最後一次出價的時候進行操作。SQL倒數計時器

我能夠使用SQL調用

$strFind="SELECT * FROM penny_bids WHERE `pennyid`=\"$pid\" ORDER BY id DESC LIMIT 1"; 
$result=mysql_query($strFind) or die(mysql_error()); 
$row=mysql_fetch_array($result); 
$memname=$row['memname']; 
$btime=$row['time']; 

我以爲當前時間減去BTIME會給我在幾秒鐘的時間來獲得最後投標時間,但事實並非如此。

$time=time()-$btime; 

gets me the time stamp. 

我怎樣才能得到它只有30位數字?數下來。因此,每次div刷新時,它將是29,28等。

+0

'$ btime'數據的格式是什麼?你可以顯示一個'var_dump($ btime)'? – cspray

+0

請不要使用'mysql_'函數來編寫新代碼,因爲它們[正在被棄用](http://www.deprecatedphp.com/mysql)。使用'mysqli_'或'PDO'。另外,請避免使用'SELECT *'並始終指定列列表。 – Kermit

回答

0

當您獲取MySQL的日期和時間時,它們通常會以YYYY-MM-DD HH:MM:SS格式顯示。如果你想讓PHP對它們進行計算,你必須用strtotime()將它們轉換成時間戳。另外,你可以讓MySQL爲你做計算。像subtime或date_diff這樣的函數可能對你有用。

0
<? 
    $aucs=mysql_query("SELECT * FROM auction"); // table name 

    $now = new DateTime(); //system date 
    $noww = $now->format('Y-m-d H:i:s'); // convert to this format 
    $time=strtotime($noww)."<br/>"; // 

    while($auc=mysql_fetch_array($aucs)) 
    { 

     $end=$auc['endstamp']; //ending time of auction from databse 

     $time1=strtotime($end)."<br/>"; //converting it into seconds 
     $result=$time1-$time; //our result 

     $timeleft = gmdate("H:i:s", $result); // function to convert seconds into hours,minutes and seconds 

     echo $timeleft; // it prints that i.e 06:25:35 but without countdown 
    }