0

我正在通过 php 获得时间

$current_hour = date("G");

现在假设$current_hour等于 20。我如何将其四舍五入为 19?或者如果$current_hour等于 00,我将如何将其四舍五入为 22?我不知道我是否解释得很好,但基本上我想以 3 的间隔向下舍入每个数字,所以我得到以下信息:

1
4
7
10
13
16
19
22
[back to begining]

两者之间的任何数字都应该四舍五入到其中的最小值,因此 11 将是 10,15 将是 13,依此类推......

4

4 回答 4

2

简单的方法是使用整数运算。首先除以 3,然后转换为 int,然后再次乘以 3,并进行一些移位以保留所需的序列。

例子:

$current_hour = 20;
echo (intval(($current_hour + 23) / 3) * 3 + 1) % 24; // Outputs 19
于 2012-04-11T19:54:50.500 回答
1
$round = intval(($current_hour - 1) / 3) * 3 + 1;
于 2012-04-11T19:55:33.730 回答
0
$round = (intval(($currentHour + 24) / 3) * 3) % 24 + 1;
于 2012-04-11T19:57:19.157 回答
0

我想这是:

($current_hour - ($current_hour % 3)) + 1
于 2012-04-11T19:59:33.150 回答