将格式化的时间值舍入到最近的半小时

slo*_*oga 10 php rounding

我需要0:30到0:59来向下舍入到0:30.
我需要0:00到0:29才能到0:30.

例如:08:56将向下舍入到08:30,其中09:00和09:01将需要向上舍入到09:30.
秒数应省略或舍入为:00

Nea*_*eal 13

你为什么不这样做:

$hour = date('H');
$minute = (date('i')>30)?'30':'00';
echo "$hour:$minute";
Run Code Online (Sandbox Code Playgroud)

DEMO

更新
我刚刚意识到你要求所有时间四舍五入到:30:

$hour = date('H');
$minute = '30'; //always 30
echo "$hour:$minute";
Run Code Online (Sandbox Code Playgroud)

  • date(n)不是分钟,而是月份.分钟= i,小时= H,Secound = s (3认同)

Roy*_*hoa 7

我对真实回合的解决方案是以下选项:

//Round Down
date('H:i',floor(time() / (15 * 60)) * (15 * 60))

//Round Up/Down
date('H:i',round(time() / (15 * 60)) * (15 * 60))

//Round Up
date('H:i',ceil(time() / (15 * 60)) * (15 * 60))
Run Code Online (Sandbox Code Playgroud)

替换time()为您需要的时间以及15您想要舍入的分钟数。

例子:

$currentTime = time();
echo('Current Time: ' . date('H:i',$currentTime) . '<br>Rounded Up 15 Minutes time: ' . date('H:i',ceil($currentTime / (15 * 60)) * (15 * 60)));
Run Code Online (Sandbox Code Playgroud)