2015-11-16 74 views
3

我現在有這樣的代碼:日期進度條PHP

$date1 = strtotime($row["progress"]); 
$date2 = strtotime($time); 
$today = time(); 
$num = $today - $date1; 
$den = $date2 - $date1; 
$percentage = ($today - $date1)/($date2 - $date1) * 100; 
echo "Current Completion Status:"; 
echo $percentage; 

什麼是應該做的是拿出今天的進度狀態,直至完成日期。我將用它來創建一個進度條。

但是目前它顯示0%。我正在使用這些測試值作爲進度行。這是2015-11-17 12:00:00以及該格式的當前日期。所以我可以創建百分比。如上所述,它顯示0作爲結果。我如何解決這個問題,使其顯示完成百分比。

+0

您是否嘗試過回顯表達的部分以查看發生了什麼? –

+0

是的。如果我將$ date設置爲實際日期而不使用PHP日期函數,它會顯示102。 @KaspervandenBerg – LaughingQuoll

+0

源代碼中是否存在編碼錯誤?在調用date()時缺少日期格式的單引號,並且在第一個回顯行上缺少分號。 –

回答

2

試試這個代碼,並使其適應你的腳本:

$date = date('y-m-j&\nb\sp;g:i:s'); 

$date1 = strtotime('2015-03-12 00:00:00'); 
$date2 = strtotime('2015-12-17 00:00:00'); 
$today = time(); 

$dateDiff = $date2 - $date1; 
$dateDiffForToday = $today - $date1; 

$percentage = $dateDiffForToday/$dateDiff * 100; 
$percentageRounded = round($percentage); 

echo $percentageRounded . '%'; 

$ date2的不應立足於日期( 'YMJ & \ NB \ SP; G:我:S')因爲這與$今日相同。

+0

謝謝。我確實需要在開始日期添加一個新的Collum來工作。 – LaughingQuoll