PHP将时间()上升(未来)到下一个5分钟的倍数

Jak*_*all 8 php time rounding

如何将结果time()(朝向未来)舍入到下一个5分钟的倍数?

Yar*_* U. 36

 $now = time();     
 $next_five = ceil($now/300)*300;
Run Code Online (Sandbox Code Playgroud)

这将为您提供下一轮五分钟(总是大于或等于当前时间).

根据您的描述,我认为这就是您所需要的.

  • 我知道,这就是我添加评论的原因.根据他的需要描述他正在寻找的是NEXT第5轮,而不是最近的(他说"将在他们的电子邮件发送时告诉他们的剧本" - 未来时态).也许我错了,但我明白了 (3认同)

sag*_*agi 14

尝试:

$time = round(time() / 300) * 300;
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案对最近的有效.最近的`round`和最近的`ceil`.当我们在这里时,`floor`应该适用于最后. (2认同)

小智 6

试试这个功能:

function blockMinutesRound($hour, $minutes = '5', $format = "H:i") {
   $seconds = strtotime($hour);
   $rounded = round($seconds / ($minutes * 60)) * ($minutes * 60);
   return date($format, $rounded);
}

//call 
 blockMinutesRound('20:11');// return 20:10
Run Code Online (Sandbox Code Playgroud)