如何在DateTime中将凌晨1:00转换为25:00军事时间

时间:2016-07-24 03:34:24

标签: php

我找到了一段时间,但我忘了怎么做。有谁知道如何使用\x0D函数1:00am25:00转换为php

1 个答案:

答案 0 :(得分:0)

我想帮助你:

   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

如果您需要OO并且不介意创建自己的课程,可以尝试

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 DateTime(): Display a length of time greater than 24 hours but not as days if greater than 24 hours