【问题标题】:How to round an integer UP to the nearest 15 in PHP如何在 PHP 中将整数向上舍入到最接近的 15
【发布时间】:2020-12-13 14:12:30
【问题描述】:

我有 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

谢谢!

【问题讨论】:

  • 你可以试试这个逻辑持续时间 ((round($duration/15)*15) + 15)。
  • 您也可以使用 ceil 或 floor 来代替 round 函数。您将需要做一些尝试和错误。

标签: php html logic rounding


【解决方案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;

最后一行是指或固定前导零,因为它不是传统的时间格式。 我没有考虑秒数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多