PHPで時刻を10進数に変換する方法


  1. 時間を分単位の10進数に変換する方法:

    function convertToDecimal($time) {
       $time_parts = explode(':', $time);
       $hours = intval($time_parts[0]);
       $minutes = intval($time_parts[1]);
       $decimal_time = $hours + ($minutes / 60);
       return $decimal_time;
    }
    
    $time = '12:30';
    $decimal_time = convertToDecimal($time);
    echo $decimal_time;  // 結果: 12.5
  2. 時間を秒単位の10進数に変換する方法:

    function convertToDecimal($time) {
       $time_parts = explode(':', $time);
       $hours = intval($time_parts[0]);
       $minutes = intval($time_parts[1]);
       $seconds = intval($time_parts[2]);
       $total_seconds = ($hours * 3600) + ($minutes * 60) + $seconds;
       $decimal_time = $total_seconds / 3600;
       return $decimal_time;
    }
    
    $time = '12:30:45';
    $decimal_time = convertToDecimal($time);
    echo $decimal_time;  // 結果: 12.5125
  3. DateTimeオブジェクトを使用して時刻を10進数に変換する方法:

    function convertToDecimal($time) {
       $datetime = DateTime::createFromFormat('H:i:s', $time);
       $decimal_time = $datetime->format('G') + ($datetime->format('i') / 60) + ($datetime->format('s') / 3600);
       return $decimal_time;
    }
    
    $time = '12:30:45';
    $decimal_time = convertToDecimal($time);
    echo $decimal_time;  // 結果: 12.5125

これらの例では、与えられた時刻を10進数に変換するために、時間、分、秒の要素を組み合わせて計算しています。最初の例では、時刻を分単位の10進数に変換し、2番目の例では秒単位の10進数に変換しています。3番目の例では、DateTimeオブジェクトを使用して時刻を10進数に変換しています。いずれの方法も、与えられた時刻を10進数に変換するための使いやすい手法です。ご参考までにご利用ください。