(看起来我的环境/系统出了问题,我现在正在分析它,每个逻辑答案都被尝试过了,失败了,所以一旦我有更多的分享,就会报告回来。感谢您的回答!)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