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

私はそれだと思います:

($current_hour - ($current_hour % 3)) + 1
于 2012-04-11T19:59:33.150 に答える
0
$round = (intval(($currentHour + 24) / 3) * 3) % 24 + 1;
于 2012-04-11T19:57:19.157 に答える