PHP获得五分钟的最后增量

时间:2019-12-01 07:24:59

标签: php

我希望从当前时间开始获得之前的五分钟增量...

让我们说当前时间是世界标准时间12:07 pm

我想在UTC下午12:05放入一个变量

解决这个问题的简单方法是什么?

4 个答案:

答案 0 :(得分:1)

没有内置的东西可以让您检索“增量”,但是您可以用最少的代码进行计算。在这里使用模数,可以算出最近5分钟标记的距离。它永远不会超过5分钟(300秒),并且始终可以安全地减去它,使您回到想要的时间。

$now = time();
echo $now . PHP_EOL;
$five_minutes = 60*5; // 300
$offset = $now % $five_minutes;
$five_block = $now - $offset;
echo date('Y-m-d H:i:s', $five_block);

答案 1 :(得分:1)

首先,您需要从其存储的变量中提取分钟。然后,在数学上,通过应用除法和下限函数,这很简单。为此,您可以先使用intdiv(numerator, denominator)除以5,这将删除所有尾随的小数点,然后再乘以5,以5的增量获得所需的值。

答案 2 :(得分:1)

您可以使用DateTime类(https://3v4l.org/7aqMH)来做到这一点:

<?php

$date = new DateTime('12:07 UTC');
$minutes = (int) $date->format('i');
$rounded = round($minutes / 5) * 5;

$date->setTime($date->format('H'), $rounded, $date->format('s'));

或更简洁:

<?php

$date = new DateTime('12:07 UTC');
$date->setTime(
    $date->format('H'), 
    round($date->format('i') / 5) * 5, 
    $date->format('s')
);

答案 3 :(得分:1)

使用 time()获取当前时间:

$min = 300
$currentTime = time();
$mod = $currentTime % $min;
$res = $currentTime - $mod;
finalResult =  date('Y-m-d H:i:s', $res);