(看起來我的環境/系統出了問題,我現在正在分析它,每個邏輯答案都被嘗試過了,失敗了,所以一旦我有更多的分享,就會報告回來。感謝您的回答!)PHP中的基本整數劃分失敗 - 很難
我已經寫了一些簡單的PHP代碼來計算兩個日期之間的持續時間,並做一些基本的算術運算,來計算一些百分比值。
我對此失效的線索感到失望!在我看來,一個變量在一行上被視爲一個整數,在另一行上被視爲一個字符串。
$start_DT = new DateTime($startdate); // e.g. 2011-06-07
$end_DT = new DateTime($enddate); // e.g. 2011-06-14
$today_DT = new DateTime("now"); // 2011-06-09
$duration = date_diff($end_DT, $start_DT)->d;
$days_remaining = date_diff($end_DT, $today_DT)->d;
echo $days_remaining; // This outputs a value of "4" in my specific case
echo $duration; // This outputs a value of "7" for my specific case.
$percentage_dur_complete = $days_remaining/$duration;
echo $percentage_dur_complete; // This gives a value of NAN
// This line says that I am dividing my zero, to imply that
// $duration might be a string.
$percentage_dur_complete = $days_remaining/(float) $duration;
我是否缺少一些基本的東西?我是PHP的相對新手(2個月)。我真的希望(有可能看起來很愚蠢),我錯過了一些東西。
謝謝!
在除法之前檢查每個變量的類型的一種方法是使用'var_dump($ myvar)',它會告訴你'$ myvar'的類型和值。更多信息在這裏:http://php.net/manual/en/function.var-dump.php – n00dle 2011-06-09 21:59:34
如果我做'var_dump',那麼這兩個數字都是整數,'$ percentage_dur_complete'包含一個合適的數字。一定還有其他的錯誤。你確定'$ startdate'和'$ enddate'設置正確嗎? – 2011-06-09 22:02:52
爲了進行完整性檢查,您運行的是哪個版本的PHP? – 2011-06-09 22:05:25