PHP 在 3 秒内四舍五入


PHP Round in 3s

我通过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,依此类推......

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

例:

$current_hour = 20;
echo (intval(($current_hour + 23) / 3) * 3 + 1) % 24; // Outputs 19
$round = intval(($current_hour - 1) / 3) * 3 + 1;
$round = (intval(($currentHour + 24) / 3) * 3) % 24 + 1;

我认为是:

($current_hour - ($current_hour % 3)) + 1