Pertanyaan Ubah jumlah menit menjadi jam & menit menggunakan PHP


Saya memiliki variabel yang disebut $final_time_saving yang hanya beberapa menit, 250 misalnya.

Bagaimana saya dapat mengubah jumlah menit menjadi jam dan menit menggunakan PHP dalam format ini:

4 hours 10 minutes


47
2017-12-19 15:29


asal


Jawaban:


<?php

function convertToHoursMins($time, $format = '%02d:%02d') {
    if ($time < 1) {
        return;
    }
    $hours = floor($time / 60);
    $minutes = ($time % 60);
    return sprintf($format, $hours, $minutes);
}

echo convertToHoursMins(250, '%02d hours %02d minutes'); // should output 4 hours 17 minutes

94
2017-12-19 15:33



echo date('H:i', mktime(0,257));

74
2017-09-23 03:23



$hours = floor($final_time_saving / 60);
$minutes = $final_time_saving % 60;

28
2017-12-19 15:31



Jawaban @Martin Bean sangat benar tetapi dalam pandangan saya diperlukan beberapa refactoring agar sesuai dengan apa yang diharapkan oleh pengguna biasa dari sebuah situs web (sistem web).
Saya pikir ketika menit di bawah 10, angka nol harus ditambahkan.
mis: 10:01, bukan 10: 1

Saya mengubah kode untuk menerima $time = 0 sejak 0:00 lebih baik dari 24:00.

Satu hal lagi - tidak ada kasus kapan $time lebih besar dari 1439 - yang 23:59 dan nilai berikutnya hanya 0:00.

function convertToHoursMins($time, $format = '%d:%s') {
    settype($time, 'integer');
    if ($time < 0 || $time >= 1440) {
        return;
    }
    $hours = floor($time/60);
    $minutes = $time%60;
    if ($minutes < 10) {
        $minutes = '0' . $minutes;
    }
    return sprintf($format, $hours, $minutes);
}

8
2018-04-16 11:27



Anda dapat mencapai ini dengan DateTime ekstensi, yang juga akan berfungsi untuk jumlah menit yang lebih besar dari satu hari (>= 1440):

$minutes = 250;
$zero    = new DateTime('@0');
$offset  = new DateTime('@' . $minutes * 60);
$diff    = $zero->diff($offset);
echo $diff->format('%a Days, %h Hours, %i Minutes');

demo


8
2018-02-21 17:01



Maaf karena memunculkan topik lama, tapi saya menggunakan beberapa kode dari salah satu jawaban ini, dan hari ini saya mengatakan pada diri saya sendiri bahwa saya dapat melakukannya tanpa mencuri kode seseorang. Saya terkejut betapa mudahnya itu. Yang saya inginkan adalah 510 menit untuk kembali pada pukul 08:30, jadi inilah yang dilakukan oleh kode itu.

function tm($nm, $lZ = true){ //tm = to military (time), lZ = leading zero (if true it returns 510 as 08:30, if false 8:30
  $mins = $nm % 60;
  if($mins == 0)    $mins = "0$mins"; //adds a zero, so it doesn't return 08:0, but 08:00

  $hour = floor($nm / 60);

  if($lZ){
    if($hour < 10) return "0$hour:$mins";
  }

  return "$hour:$mins";
}

Saya menggunakan nama variabel pendek karena saya akan banyak menggunakan fungsi, dan saya malas.


3
2017-08-14 12:53



$t = 250;
$h = floor($t/60) ? floor($t/60) .' hours' : '';
$m = $t%60 ? $t%60 .' minutes' : '';
echo $h && $m ? $h.' and '.$m : $h.$m;

4 jam dan 10 menit


2
2017-11-22 20:00



Cara termudah adalah:

    gmdate('H:i', $numberOfSeconds * 60)

1
2017-12-30 18:09



Jika Anda ingin sesuatu seperti:

echo date('G \h\o\u\r\s i \m\i\n\u\t\e\s', mktime(0, 90)); //will return 1 hours 30 minutes
echo date('G \j\a\m i \m\e\n\i\t', mktime(0, 90)); //will return 1 jam 30 menit

1
2018-05-20 12:51



function hour_min($minutes){// Total
   if($minutes <= 0) return '00 Hours 00 Minutes';
else    
   return sprintf("%02d",floor($minutes / 60)).' Hours '.sprintf("%02d",str_pad(($minutes % 60), 2, "0", STR_PAD_LEFT)). " Minutes";
}
echo hour_min(250); //Function Call will return value : 04 Hours 10 Minutes

0
2017-11-09 12:37



$m = 250;

$extraIntH = intval($m/60);

$extraIntHs = ($m/60);             // float value   

$whole = floor($extraIntHs);      //  return int value 1

$fraction = $extraIntHs - $whole; // Total - int = . decimal value

$extraIntHss =  ($fraction*60); 

$TotalHoursAndMinutesString  =  $extraIntH."h ".$extraIntHss."m";

0
2018-01-30 13:01