本站重新定位为
分享技术和经验的个人博客

PHP大屌进

把秒数转换成X天X小时X分X秒,保留2位精度。

总感觉这个写法笨笨的,有大佬能改进吗?

function htime($time,$keep=2){
    if(is_numeric($time)){
        $day = $hour = $min = $sec = 0;
        $time_array = array();
        if($time >= 3600*24){
            $day = floor($time/(3600*24));
            if($day > 0){
                $time_array[] = "{$day}d";
            }
            $time = $time%(3600*24);
        }

        if($time >= 3600){
            $hour = floor($time/3600);
            if($hour > 0){
                $time_array[] = "{$hour}h";
            }
            $time = ($time%3600);
        }elseif($day > 0){
            $time_array[] = "0h";
        }

        if($time >= 60){
            $min = floor($time/60);
            if($min > 0){
                $time_array[] = $min."m";
            }
            $time = ($time%60);
        }else{
            $time_array[] = "0m";
        }

        $time_array[] = "{$time}s";

        return implode(”, array_slice($time_array, 0, $keep));

    }else{
        return FALSE;
    }
}
重庆网友:

  1. window.setTimeout(countdown,1000);
  2.     total_days = delta_T/(24*60*60*1000);//总天数
  3.     total_show = Math.floor(total_days);//实际显示的天数
  4.     total_hours = (total_days – total_show)*24;//剩余小时
  5.     hours_show = Math.floor(total_hours);//实际显示的小时数
  6.     total_minutes = (total_hours – hours_show)*60;//剩余的分钟数
  7.     minutes_show = Math.floor(total_minutes);//实际显示的分钟数
  8.     total_seconds = (total_minutes – minutes_show)*60;//剩余的分钟数
  9.     seconds_show = Math.floor(total_seconds);//实际显示的秒数
  10.     show_time.innerHTML = "距离2021年3月1日还有:" + total_show + "天" + hours_show + "时" + minutes_show + "分" + seconds_show + "秒";

复制代码
山东网友:不懂PHP

屌也只是一般尺寸!

四川网友:屌还行,PHP不行,帮不了你
海南网友:https://blog.csdn.net/haibo0668/article/details/82658288
安徽网友:

dabiaoge 发表于 2020-9-14 17:05
屌还行,PHP不行,帮不了你

我有个朋友想看看
山东网友:
屌还行,上面的大佬已经有答案了,进来秀下jj

西藏网友:

  1. function secondsToTime($seconds) {
  2.     $dtF = new \DateTime(‘@0’);
  3.     $dtT = new \DateTime("@$seconds");
  4.     return $dtF->diff($dtT)->format(‘%a days, %h hours, %i minutes and %s seconds’);
  5. }
  6. echo secondsToTime(1640467);
  7. # 18 days, 23 hours, 41 minutes and 7 seconds

复制代码

https://stackoverflow.com/questions/8273804/convert-seconds-into-days-hours-minutes-and-seconds
宁夏网友:

Evan 发表于 2020-9-14 17:12
https://stackoverflow.com/questions/8273804/convert-seconds-into-days-hours-minutes-and-seconds

需要从第一个非0单位开始,保留最多2个精度。
广西网友:

  1.         $day = floor($a / DAY);
  2.         $hour  = floor(($a % DAY) / HOUR);
  3.         $minute = floor((($a % DAY) % HOUR) / MINUTE);
  4.         $sec = (($a % DAY) % HOUR) % MINUTE;
  5.         echo $day . "天" . $hour . "时". $minute. "分" . $sec . "秒";

复制代码

赞(0)
这篇文章为天际博客(天朝世纪)原创,转载请注明。天际部落 » PHP大屌进

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址