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

PHP函数返回use,而不是echo,作为变量存储。,php,function,variables,echo,diff,Php,Function,Variables,Echo,Diff,我的数据库有一个开始时间戳和一个结束时间戳。虽然我对函数还没有太多的经验,但我创建了一个函数,它基本上输出以小时和分钟为单位的持续时间,即开始和结束之间的差异 这一切都是可行的,但它是自动打印的,我想实现的是将结果存储为变量并进行响应的能力 以下是函数: function session_duration($start, $end) { $date_start = new DateTime($start); //start time $date_end = new DateTim

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

这一切都是可行的,但它是自动打印的,我想实现的是将结果存储为变量并进行响应的能力

以下是函数:

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\u duration($start,$end)
,都会显示持续时间,我希望能够做到的是:

$duration = session_duration($start, $end);
echo 'Duration: ' . $duration;
我想我想要的是关于如何构建一个结束返回的建议,一个在函数中没有响应但我缺乏知识的输出编译。任何帮助都将受到感激

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\u string.=\u\u
而不是
$return\u string=$return\u string___


或者,您可以使用
$return\u string.=\u\u
而不是
$return\u string=$return\u 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$returnValue;
}您要查找的关键字是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$returnValue;
}字符串不使用
+=
。我想你的意思是
=
。这太棒了,现在你们两个提到了
+=
=
,我已经能够找到赋值运算符,这正是我想要的,一种生成最终结果然后作为echo返回的方法。谢谢你,康诺姆伍德和塔纳斯,你教育了我,我很感激@morgyface你应该将Thanasis的答案标记为公认的问题。在这种情况下,他的回答是正确的,你要求的也是正确的。继续!
+=
不用于字符串。我想你的意思是
=
。这太棒了,现在你们两个提到了
+=
=
,我已经能够找到赋值运算符,这正是我想要的,一种生成最终结果然后作为echo返回的方法。谢谢你,康诺姆伍德和塔纳斯,你教育了我,我很感激@morgyface你应该将Thanasis的答案标记为公认的问题。在这种情况下,他的回答是正确的,你要求的也是正确的。继续!