Функция PHP возвращает использование, а не эхо, сохраняя в качестве переменной.

В моей базе данных есть отметка времени начала и окончания. Хотя у меня еще не было большого опыта работы с функциями, я создал функцию, которая в основном выводит длительность в часах и минутах, то есть разницу между началом и концом.

Все это работает, но печатается автоматически, и я хотел бы добиться возможности сохранять результат в виде переменной и отображать его.

Вот функция:

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;

Я полагаю, что мне нужен совет о том, как, почти, создать конечный результат, компиляцию вывода, который не отражен в функции, но мне не хватает знаний. Любая помощь будет принята с благодарностью.

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');

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

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');
$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;
}

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector