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

时间:2017-08-11 11:16:02

标签: php function variables echo diff

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

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

这是功能:

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;

我想我正在寻找的是关于如何建立一个结束回报的建议,一个未在函数内回应的输出汇编,但我缺乏知识。我们将非常感激地提供任何帮助。

2 个答案:

答案 0 :(得分:4)

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 . ___

答案 1 :(得分:1)

您正在寻找的关键字是返回

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 $ returnValue;     }