我的数据库有一个开始时间戳和一个结束时间戳。虽然我还没有太多的功能经验,但我已经创建了一个基本上输出小时和分钟持续时间的函数,即开始和结束之间的差异。
一切正常,但它是自动打印,我想要实现的是将结果存储为变量并回显它的能力。
这是功能:
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;
我想我正在寻找的是关于如何建立一个结束回报的建议,一个未在函数内回应的输出汇编,但我缺乏知识。我们将非常感激地提供任何帮助。
答案 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; }