PHP获得5分钟的最后增量[重复]

问题描述 投票:-2回答:4

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

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

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

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

php
4个回答
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
投票

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


1
投票

使用time()

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

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')
);
© www.soinside.com 2019 - 2024. All rights reserved.