2011-01-12 80 views
1

我建立一個測驗系統,PHP來計算的剩餘時間框架

上表中的字段是:

ID,標題,描述,狀態,創建,結束

的邏輯就是這樣的:

一個測驗僅持續一週,它會在一週的最後一天自動結束(我在星期六24:00考慮),並且管理員應該在任何一天的測驗中輸入測驗周,如果它是在Wedne上輸入的星期天在下午1點說,那麼系統應該計算剩餘的時間範圍(在這種情況下大約需要83小時),然後將其添加到當前時間()以插入到「結束」字段。

我在正確的軌道上?如果我是,我應該如何計算PHP中剩餘的時間框架?

感謝

回答

2

可以使用strtotime();得到時間戳和使用參數的下個週六,所以你可以計算出時間做這樣的事情剩餘:

$timeRemaining = strtotime('next saturday') - time(); 

這會給你以秒爲單位的時間戳,您可以用3600除以得到小時數。

+0

這一個作品,謝謝你。順便說一句,得到的時候,我應該除以3600不應該? – littlechad 2011-01-12 09:27:34

0

您可以通過使用mktimestrtotime功能找到的結束時間,並找到時使用

// Saturday, this week 
$ends = strtotime('next saturday'); 
$remaining = $ends - time(); // Remaining time in seconds 
2

在PHP> = 5.3.0您可以使用該功能date_diff

在以前的剩餘版本你可以使用這樣的事情

$date1 = time(); 
$date2 = mktime(0,0,0,01,28,2011); 

$diff = $date2 - $date1; 
0

如果我正確地理解了這個問題,即你想結束日期存儲在數據庫然後,這不僅可以實現與

$結束= strtotime(「+ 1周」);

0

請注意,星期六的24:00不存在。時間從星期六的23點59分59秒到星期日的00點00分。

無需手動添加時間。測驗創建後,您可以使用$end_time = strtotime('next Sunday');獲得測驗結束的時間(週日上午00:00:00)。