Как округлить целое число до ближайшего 15 в PHP

#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;
 

последняя строка означает или фиксирует начальный ноль, поскольку это не обычный формат времени.
Я не учитывал секунды.