在总“分钟”中获取 php DateInterval

新手上路,请多包涵

我正在尝试获取“总分钟数”值中的 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');

这是行不通的。感谢任何帮助获得我想要的输出。

原文由 Rana 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 658
2 个回答
abs((new \DateTime("48 hours"))->getTimestamp() - (new \DateTime)->getTimestamp()) / 60

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

原文由 deceze 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你被困在一个只有 DateInterval 的位置,并且你(像我一样)发现似乎无法获得总分钟数、秒数或任何时间间隔,解决方案就是创建一个零时间的DateTime,给它加上interval,然后得到结果时间戳:

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

原文由 Neil Townsend 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏