В моей базе данных есть отметка времени начала и окончания. Хотя у меня еще не было большого опыта работы с функциями, я создал функцию, которая в основном выводит длительность в часах и минутах, то есть разницу между началом и концом.
Все это работает, но печатается автоматически, и я хотел бы добиться возможности сохранять результат в виде переменной и отображать его.
Вот функция:
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;
Я полагаю, что мне нужен совет о том, как, почти, создать конечный результат, компиляцию вывода, который не отражен в функции, но мне не хватает знаний. Любая помощь будет принята с благодарностью.
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 . ___
Ключевое слово, которое вы ищете, это Возвращение
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;
}