0

当使用 ceil 并输入 2013-02-28 作为开始和 2013-05-30 作为结束时,两者之间有 92 天:

return ceil(($end - $start) / $medium);

而在地板上我得到 91 天:

return floor(($end - $start) / $medium);

当我在 excel 和 mysql 中使用 datediff 函数执行此操作时,我也得到 91,rwo 和哪个是正确的方法有什么区别?

4

2 回答 2

0

ceil()函数用于通过四舍五入获得下一个最高整数值,而函数通过四舍五入floor()将指定的数值转换为下一个最低整数值。

因此,当您使用 ceil() 时,您获得的值以及如果它包含小数点,它将始终舍入到下一个最高整数,但 floor 会将其舍入到下一个最低整数。

有关 ceil 和 floor 的更多信息可以在这里找到:http: //php.net/manual/en/function.ceil.phphttp://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 ;

希望这可以帮助你:)

于 2013-04-04T12:27:29.913 回答
0

ceil - 向上舍入分数 floor - 向下舍入分数

天花板 (4.1) = 5 地板 (4.1) = 4

于 2013-04-04T12:09:53.007 回答