我有一个变量$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)
)时,我每次都会得到浮动结果。
您是否使用bcscale
设置了刻度?如果它被设置为0
,它可以解释这种行为。请在计算之前尝试调用bcscale(100)
;
您可以使用:
$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