2017-08-11 8 views
1

私のデータベースには、開始タイムスタンプと終了タイムスタンプがあります。私はまだ多くの機能を経験していませんが、基本的に時間と分、すなわち開始と終了の差を出力する関数を作成しました。PHP関数はエコーではなく、変数として格納する。

すべて動作しますが、自動的に印刷していますが、達成したいのは、結果を変数として保存してエコーする機能です。

ここでの関数である:私はページ上のsession_duration($start, $end)を置くと、持続時間が示されている

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

だから、私は何をできるようにしたいことは次のとおりです。

$duration = session_duration($start, $end); 
echo 'Duration: ' . $duration; 

私は私が探しているのは、関数の中にエコーされていない出力のコンパイルを行う方法についてのアドバイスですが、知識が不足しています。どんな援助も感謝して受け取ります。

答えて

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

キーワード戻り

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

'+ ='は文字列には使用されません。私はあなたが '。='を意味すると思う。 – Thanasis

+0

これは素晴らしく、2人があなたが探していた**代入演算子**について知ることができた '+ ='と '。='を指摘しました。最終的な結果を返してから、**エコー**に反対する**リターン**。ありがとう@connormcwoodと@ Thanasis、あなたは私を教育し、私は感謝しています! – morgyface

+1

@morgyfaceあなたは、受け入れられた質問として、タナセシスの答えに印を付けるべきです。この場合、彼は正しい、あなたが求めたものです。 続ける! – connormcwood

関連する問題