PHP回合3s

时间:2012-04-11 19:50:24

标签: php rounding

我通过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 个答案:

答案 0 :(得分:2)

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

示例:

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

答案 1 :(得分:1)

$round = intval(($current_hour - 1) / 3) * 3 + 1;

答案 2 :(得分:0)

$round = (intval(($currentHour + 24) / 3) * 3) % 24 + 1;

答案 3 :(得分:0)

我认为是:

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