当使用ceil并且我输入2013-02-28作为开始而2013-05-30作为结束时,我在两者之间得到92天:
return ceil(($end - $start) / $medium);
与地板同时我得到91天:
return floor(($end - $start) / $medium);
当我在excel和mysql中使用datediff函数时,我也得到91,rwo和哪一个是正确的方法有什么区别?
答案 0 :(得分:0)
ceil - 圆形分数 floor - Round fraction down
ceil(4.1)= 5 (4.1)= 4
答案 1 :(得分:0)
ceil()
函数用于通过舍入分数来获取下一个最高整数值,而floor()
函数通过舍入将指定的数值转换为下一个最小的整数值。
因此,当你使用ceil()时,你得到的值,如果它包含小数点,它将始终四舍五入到下一个最高整数,但是floor将它舍入到下一个最低整数。
有关ceil和floor的更多信息,请访问:http://php.net/manual/en/function.ceil.php和http://php.net/manual/en/function.floor.php
但我认为只需使用floor来获得正确的输出:
$end = "2013-02-28";
$start = "2013-05-30";
$medium = '60*60*24';
$difference = abs(strtotime($end) - strtotime($start));
$days = floor(($difference)/ ($medium));
echo $days ;
希望这可以帮助你:)