PHP 函数 return 使用,而不是 echo,存储为变量。

PHP Function return use, not echo, storing as a variable.

我的数据库有一个开始时间戳和一个结束时间戳。虽然我对函数还没有太多经验,但我创建了一个函数,它基本上输出以小时和分钟为单位的持续时间,即开始和结束之间的差异。

一切正常,但它是自动打印的,我想实现的是能够将结果存储为变量并回显它。

函数如下:

function session_duration($start, $end) {
    $date_start = new DateTime($start); //start time
    $date_end = new DateTime($end); //end time
    $interval = $date_start->diff($date_end);
    $duration_hours = $interval->format('%H');
    $duration_mins = $interval->format('%i'); 
    if ( $duration_hours != '0' ) {
        echo $duration_hours . 'hrs '; 
    }
    if ( $duration_mins != '0' ) {
        echo $duration_mins . 'min';
        if ( $duration_mins > '1' ) { 
            echo 's';
        }        
    }
}

所以无论我在页面上放置 session_duration($start, $end),持续时间都会显示,我希望能够做的是:

$duration = session_duration($start, $end);
echo 'Duration: ' . $duration;

我想我正在寻找的是关于如何几乎建立一个结局的建议 return,一个未在函数中回显的输出汇编,但我缺少知识。任何帮助将不胜感激。

function session_duration($start, $end) {
    $date_start = new DateTime($start); //start time
    $date_end = new DateTime($end); //end time
    $interval = $date_start->diff($date_end);
    $duration_hours = $interval->format('%H');
    $duration_mins = $interval->format('%i'); 

    $return_string = "";

    if ( $duration_hours != '0' ) {
        $return_string = $return_string . $duration_hours . 'hrs '; 
    }
    if ( $duration_mins != '0' ) {
        $return_string = $return_string . $duration_mins . 'min';
        if ( $duration_mins > '1' ) { 
            $return_string = $return_string .  's';
        }        
    }

    return $return_string;

}

或者您可以使用 $return_string .= ___ 而不是 $return_string = $return_string . ___

您要查找的关键字是Return

function session_duration($start, $end) {
    $date_start = new DateTime($start); //start time
    $date_end = new DateTime($end); //end time
    $interval = $date_start->diff($date_end);
    $duration_hours = $interval->format('%H');
    $duration_mins = $interval->format('%i'); 
    $returnValue = "";
    if ( $duration_hours != '0' ) {
        $returnValue += $duration_hours . 'hrs '; 
    }
    if ( $duration_mins != '0' ) {
        $returnValue += $duration_mins . 'min';
        if ( $duration_mins > '1' ) { 
            $returnValue += "s";
        }        
    }

return$return值; }