Мне нужно 0:30 до 0:59, чтобы округлить до 0:30.
Мне нужно 0:00 до 0:29, чтобы округлить до 0:30.
Пример: 08:56 будет округлить до 08:30, где 09:00 и 09:01 нужно округлить до 09:30.
Секунды должны быть опущены или округлены до: 00
Почему бы вам просто не сделать это:
$hour = date('H'); $minute = (date('i')>30)?'30':'00'; echo "$hour:$minute";
DEMO
ОБНОВИТЬ
Я просто понял, что вы просили все время округлить до :30
:
$hour = date('H'); $minute = '30'; //always 30 echo "$hour:$minute";
Мое решение для реального раунда – это следующие варианты:
//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))
Замените 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)));
you have to do: $hour = date('H'); $minute = date('i'); $minute = ($minute < 30 || $minute > 30) ? 30 : $minute;