使用日期时地板和ceil之间的差异

时间:2013-04-04 12:06:40

标签: php mysql excel date

当使用ceil并且我输入2013-02-28作为开始而2013-05-30作为结束时,我在两者之间得到92天:

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

与地板同时我得到91天:

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

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

2 个答案:

答案 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.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 ;

希望这可以帮助你:)