获取 php DateInterval in total “minutes”

2022-08-30 12:08:58

我正在尝试以“总分钟数”值获取PHP“DateInterval”值。如何获得它?似乎简单的格式(“%i分钟”)不起作用?

下面是示例代码:

$test = new \DateTime("48 hours");
$interval = $test->diff(new \DateTime());

现在,如果我尝试以总天数获取间隔,那很好:

echo $interval->format('%a total days');

它显示2天作为输出,这完全没问题。我试图得到的是,如果以“总分钟数”获得值,所以我尝试了:

echo $interval->format('%i total minutes');

这是行不通的。任何帮助都值得赞赏,以获得我想要的输出。


答案 1
abs((new \DateTime("48 hours"))->getTimestamp() - (new \DateTime)->getTimestamp()) / 60

这是获取两个实例之间分钟差异的最简单方法。DateTime


答案 2

如果您被困在一个位置,而您所拥有的只是 ,并且您(像我一样)发现似乎没有办法获得总分钟数,秒数或任何间隔,则解决方案是在零时间创建一个 DateTime,将间隔添加到其中,然后获取生成的时间戳:DateInterval

$timeInterval      = //the DateInterval you have;
$intervalInSeconds = (new DateTime())->setTimeStamp(0)->add($timeInterval)->getTimeStamp();
$intervalInMinutes = $intervalInSeconds/60; // and so on

推荐