我有一个变量$newTime
,这是由mktime()
以秒为单位的时间,我希望将其转换为天数。
在这种情况下,它超过86.400
(这是一天中的秒数),我尝试将其除以86.400
以获得天数(四舍五入)。
但有时我会:
Case 1: 87951 / 86400 = 1.0179513888 (1 day ago)
Case 2: 156257 / 86400 = 1.8085300925 (2 days ago)
有时候:
Case 1: 87986 / 86400 = 1 (Should be 1 day ago)
Case 2: 156292 / 86400 = 1 (Should be 2 days ago)
这是代码:
$newTime = round(bcdiv($newTime, bcmul("24", bcmul("60", "60"))),0);
当我不使用bcmath,只使用常规数学($newTime / (60*60*24)
)时,我每次都会得到浮动结果。
答案 0 :(得分:3)
您是否使用bcscale
设置了比例?如果设置为0
,则可以解释该行为。请尝试在计算之前调用bcscale(100)
;
答案 1 :(得分:1)
您可以使用:
$newTime = round( $newTime / (60 * 60 * 24));
完全没有bcmath。
示例:
$newTime = 156292;
$newTime = round( $newTime / (60 * 60 * 24));
echo $newTime; //2 Always
$newTime = 87986;
$newTime = round( $newTime / (60 * 60 * 24));
echo $newTime; //1 Always