Search code examples
phpformathour

how to format hours in php?


I made this function and it works:

$myHour = "09:09";
$myHour = time_format($myHour);
      function time_format($h){   
            $initial_string = $h;
            $new = substr($h,1,strlen($h));
            $h = substr($h,0,-4);
            if ($h == "0"){
                return $new;
            }else{
                return $initial_string;
            }
        }

This function verify it the string looks like: "01:02" and get rid of the first "0", so it will become "1:02" else if it looks like "13:13" it will return "13:13". My question is how to improve my function? or if there exists other better method ? thx


Solution

  • this will be your shortened function, still readable

    function time_format($h){
        if (substr($h, 0, 1) == "0"){
            return substr($h, 1);
        }else{
            return $h;
        }
    }
    

    this would be even shorter

    function time_format($h){
        return substr($h, 0, 1) == "0" ? substr($h, 1) : $h;
    }
    

    this one is even without the if operators

    to read more about it, here is a link.