2011-10-21 76 views
0

我使用time()在數據庫中存儲日期。 我有一些類型的廣告網站。 用戶提交他們的廣告和他們想顯示例如他們的廣告的天數:time()函數數學

標題:廣告標題....

期限:20天

創建日期:時間()(我的時間()時,我 提交數據庫上這個廣告得到的創建日期。)

我需要計算截止日期爲紀元格式每個廣告。

exp_date = creation date + 20 days ; /// this line is hypothetical , i need correct way to calculate exp_Date 
sql->set(experation date = exp_date); 

此外,我需要知道多少時間是以天,小時和分鐘爲單位,並顯示在頁面上。

$current time = time(); 
    $remaining_time = $current time - $exp date ; //this line is hypothetical , i need correct way to calculate remaining_time 
    echo 'remaining time : '.$remaining_time ; 

最後,我不想顯示已過期的廣告(我不知道要做到這一點,最好的方法是計算時,我展示的廣告,也許我能以某種方式自動禁用後,廣告狀態時間20天?)

current date = time(); 
    if (ads experation date > current date) // this line is hypothetical , i need to calculate this 
    sql->update ('set ads status= 0'); 
    echo 'this ad has been expires '; 
    exit; 
+0

我認爲這個問題是這樣的一個副本:http://stackoverflow.com/questions/5233692/php-add-time-to-time –

+0

@Max,如果你想要一個正確的答案,我可以建議你編輯你的問題。它不清楚你想要什麼,並且你的代碼樣本不正確(缺少花括號,帶有空格的標識符)。 –

+0

他們不是真正的示例代碼只是一些解釋,我仍然編輯他們 – max

回答

1

要計算的截止日期:

$expiration = time() + 1728000; // 1728000 = 20 * 24 * 60 * 60 (20 days) 

要計算離開的時候,你應該這樣做

$currentTime = time(); 
$seconds = $expiration - $currentTime; 

$daysLeft = (int)($seconds/86400); // 86400 = 24*60*60 (seconds in one day) 
$seconds -= $daysLeft * 86400; 
$hoursLeft = (int)($seconds/3600); // 3600 = 60*60 (seconds in one hour) 
$seconds -= $hoursLeft * 3600; 
$minutesLeft = (int)($seconds/60); // seconds in one minute 
$seconds -= $minutesLeft * 60; 

$daysLeft$hoursLeft$minutesLeft$seconds是要

-1

爲什麼不能讓生活簡單的通過運行一個腳本,每天一次(cron將做到這一點),並通過做這些廣告的刪除(或移動)呢?

0

我需要計算exp時代格式的每個廣告的合法日期。

你碰巧知道一分鐘內秒數是多少?幾分鐘幾分鐘?一天中的幾個小時?
是什麼讓你無法乘以這些數字?

我不想顯示已過期的廣告

不顯示它們。這是SQL的用途。​​將只選擇實際的廣告。