为了账号安全,请及时绑定邮箱和手机立即绑定

将秒转换为天、小时、分钟和秒

将秒转换为天、小时、分钟和秒

PHP
牧羊人nacy 2019-10-12 16:07:03
将秒转换为天、小时、分钟和秒我想转换一个变量$uptime这是秒,分为几天、几个小时、几分钟和几秒。例子:$uptime = 1640467;结果应该是:18 days 23 hours 41 minutes
查看完整描述

3 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

这可以通过DateTime班级,等级

用途:

echo secondsToTime(1640467);# 18 days, 23 hours, 41 minutes and 7 seconds

职能:

function secondsToTime($seconds) {
    $dtF = new \DateTime('@0');
    $dtT = new \DateTime("@$seconds");
    return $dtF->diff($dtT)->format('%a days, %h hours, %i minutes and %s seconds');}

演示



查看完整回答
反对 回复 2019-10-13
?
慕少森

TA贡献2019条经验 获得超9个赞

基于JulianMoreno的回答,但更改为将响应作为字符串(而不是数组),只包括所需的时间间隔,而不假定为复数。

这与最高投票的答案之间的区别是:

259264几秒钟这段代码会给

3天1分4秒

259264秒,最高得票率(Glavić)会给

三天,0小时,1分钟S和4秒

function secondsToTime($inputSeconds) {
    $secondsInAMinute = 60;
    $secondsInAnHour = 60 * $secondsInAMinute;
    $secondsInADay = 24 * $secondsInAnHour;

    // Extract days
    $days = floor($inputSeconds / $secondsInADay);

    // Extract hours
    $hourSeconds = $inputSeconds % $secondsInADay;
    $hours = floor($hourSeconds / $secondsInAnHour);

    // Extract minutes
    $minuteSeconds = $hourSeconds % $secondsInAnHour;
    $minutes = floor($minuteSeconds / $secondsInAMinute);

    // Extract the remaining seconds
    $remainingSeconds = $minuteSeconds % $secondsInAMinute;
    $seconds = ceil($remainingSeconds);

    // Format and return
    $timeParts = [];
    $sections = [
        'day' => (int)$days,
        'hour' => (int)$hours,
        'minute' => (int)$minutes,
        'second' => (int)$seconds,
    ];

    foreach ($sections as $name => $value){
        if ($value > 0){
            $timeParts[] = $value. ' '.$name.($value == 1 ? '' : 's');
        }
    }

    return implode(', ', $timeParts);}

希望这能帮上忙。



查看完整回答
反对 回复 2019-10-13
  • 3 回答
  • 0 关注
  • 419 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信