h;-6ren">
gpt4 book ai didi

php - 规范化 PHP 中的 DateInterval

转载 作者:行者123 更新时间:2023-12-04 08:56:44 24 4
gpt4 key购买 nike

情况/问题
我在 PHP 中遇到 DateInterval 问题。
鉴于以下代码

$interval = new DateInterval("PT6000S");
echo $interval->h; // 0
echo $interval->i; // 0
echo $interval->s; // 6000
echo $interval->format("%h:%i"); // 0:0
我希望这代表 1 小时 40 分钟,而不是 6000 秒。
问题
是否有内置的方法来规范化 DateInterval? duration的具体写法字符串?或者这是必须正常完成的事情?
如果有人有“解决方法”建议,我可以修改它的创建和格式化方式。
我已经完成了我的研究,但奇怪的是我没有发现任何对这个问题有帮助的东西。

最佳答案

DateInterval 类有点烦人。严格来说,它在做正确的事情,因为您的间隔规范字符串指定了零分钟和小时,但它不会将多余的秒数转换为分钟和小时数,这绝对没有帮助。
我以前使用过的一个选项是将间隔添加到初始化为 Unix 纪元的新 DateTime 对象,然后格式化结果时间。这意味着使用标准日期格式字符串(所以 h 而不是 %h 等)

echo (new DateTime('@0'))->add(new DateInterval("PT6000S"))->format('h:i');
// 01:40
https://3v4l.org/OX6JF

关于php - 规范化 PHP 中的 DateInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63782815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com