#php #html #logic #rounding
#php #HTML #Логические #округление
Вопрос:
У меня есть ЦЕЛОЧИСЛЕННАЯ (255) переменная $duration
, сохраненная со значением, полученным от пользователя. Мне нужно округлить это до ближайшего 15. Я искал повсюду, но не смог найти решение.
Как я могу это сделать?
Например:
- 10 становится 15
- 16 становится 30
- 130 становится 135
Кроме того, как я могу добавить $duration
к переменной ВРЕМЕНИ $time
, чтобы вывести время после этой продолжительности?
Например, из 080000
:
- Если
$duration
равно 15,$time
становится 081500 - Если
$duration
равно 30,$time
становится 083000 - Если
$duration
равно 135,$time
становится 101500
Спасибо!
Комментарии:
1. Вы можете попробовать эту логику для duration ((round($duration/15)*15) 15).
2. Вы также можете использовать ceil или floor вместо функции round . Вам нужно будет сделать немного попыток и ошибок.
Ответ №1:
Вы можете использовать простое деление и сложение с приведением (вернет целое значение без дроби) следующим образом:
$val = 130;//or any value
$roundedVal = ((int)($val/15) 1) * 15;
о втором вопросе:
$time='080000';
$valHours = (int)($val/60);
$valMin = (int)($val % 60);
$time = $time ($valHours * 10000) ($valMin * 100);
$time = strlen($time) == 8? $time : '0' . $time;
последняя строка означает или фиксирует начальный ноль, поскольку это не обычный формат времени.
Я не учитывал секунды.