gpt4 book ai didi

PHP 日期时间() : Display a length of time greater than 24 hours but not as days if greater than 24 hours

转载 作者:可可西里 更新时间:2023-11-01 13:16:25 26 4
gpt4 key购买 nike

我想显示以小时、分钟和秒为单位的时间长度,其中有些时间长度大于 24 小时。目前我正在尝试这个:

$timeLength = new DateTime();
$timeLength->setTime(25, 30);
echo $timeLength->format('H:m:i'); // 01:30:00

我希望它显示 25:30:00

我正在寻找面向对象的解决方案。

谢谢:)

最佳答案

因为你已经有了以秒为单位的长度,你可以计算它:

function timeLength($sec)
{
$s=$sec % 60;
$m=(($sec-$s) / 60) % 60;
$h=floor($sec / 3600);
return $h.":".substr("0".$m,-2).":".substr("0".$s,-2);
}
echo timeLength(6534293); //outputs "1815:04:53"

如果你真的想使用 DateTime 对象,这里有一个(有点作弊的)解决方案:

function dtLength($sec)
{
$t=new DateTime("@".$sec);
$r=new DateTime("@0");
$i=$t->diff($r);
$h=intval($i->format("%a"))*24+intval($i->format("%H"));
return $h.":".$i->format("%I:%S");
}
echo dtLength(6534293); //outputs "1815:04:53" too

如果你需要面向对象并且不介意创建自己的类,你可以尝试

class DTInterval
{
private $sec=0;
function __construct($s){$this->sec=$sec;}
function formet($format)
{
/*$h=...,$m=...,$s=...*/
$rst=str_replace("H",$h,$format);/*etc.etc.*/
return $rst;
}
}

关于PHP 日期时间() : Display a length of time greater than 24 hours but not as days if greater than 24 hours,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559451/

26 4 0
文章推荐: windows - 谁能画出 SVN 分支的概念?
文章推荐: css - 如何在页面加载时将
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com