1

我有一个变量$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)),我每次都会得到浮动结果。

4

2 回答 2

3

您是否使用 设置了比例bcscale?如果设置为0,它可以解释行为。请在计算之前尝试调用bcscale(100)

于 2012-07-28T13:59:30.413 回答
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
于 2012-07-28T13:56:34.387 回答