2011-07-01 2 views
2

Я создаю свой собственный скрипт аукциона на пенни. Я пытаюсь заставить таймер обратного отсчета работать. Поскольку в любом случае div обновляется каждую секунду, мне не нужно использовать таймер jquery, который я могу просто пройти ко времени последней ставки.SQL Count Down Timer

Я в состоянии получить время последнего предложения, используя 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 
    }