我存储了INTEGER(255(变量$duration
,其中包含一个来自用户的值。我需要四舍五入到最接近的15。我找遍了所有地方,但一直找不到解决办法。
我该怎么做?
例如:
- 10变为15
- 16变为30
- 130变为135
此外,如何将$duration
添加到TIME变量$time
中,以输出该持续时间之后的时间?
例如,从080000
:
- 如果
$duration
为15,则$time
变为081500 - 如果
$duration
为30,则$time
变为083000 - 如果
$duration
为135,则$time
变为101500
谢谢!
您可以使用带强制转换的简单除法和加法(将返回不带分数的整数值(运算符,如下所示:
$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;
最后一行表示或修复前导零,因为它不是传统的时间格式。我没有考虑到秒数。