PHP를 사용하여 분을 시간과 분으로 변환
$final_time_saving
예를 들어 250 분 이라는 변수 가 있습니다.
이 형식의 PHP를 사용하여 분을 시간과 분으로 변환하려면 어떻게해야합니까?
4 hours 10 minutes
<?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
echo date('H:i', mktime(0,257));
$hours = floor($final_time_saving / 60);
$minutes = $final_time_saving % 60;
DateTime
연장을 통해이를 달성 할 수 있으며 , 이는 1 일 ( >= 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');
@Martin Bean의 대답은 완벽하게 정확하지만 내 관점에서 일반 사용자가 웹 사이트 (웹 시스템)에서 기대하는 것에 맞게 리팩토링이 필요합니다.
분이 10 미만이면 앞에 0을 추가해야한다고 생각합니다.
예 : 10 : 1이 아닌 10:01
$time = 0
0:00이 24:00보다 낫기 때문에 코드를 수락하도록 변경했습니다 .
한 가지 더 $time
-1439보다 큰 경우는 없습니다 -23:59이고 다음 값은 단순히 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);
}
$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 시간 10 분
오래된 주제를 가져 와서 미안하지만이 답변 중 하나의 코드를 많이 사용했으며 오늘은 누군가의 코드를 훔치지 않고도 할 수 있다고 스스로에게 말했습니다. 얼마나 쉬웠는지 놀랐습니다. 내가 원했던 것은 08:30으로 반환되는 510 분입니다. 그래서 이것이 코드가하는 일입니다.
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";
}
함수를 많이 사용하고 게으 르기 때문에 짧은 변수 이름을 사용합니다.
가장 쉬운 방법은 다음과 같습니다.
gmdate('H:i', $numberOfSeconds * 60)
다음과 같은 것을 원할 경우 :
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
@Martin_Bean 및 @Mihail Velikov 답변 덕분에. 방금 답변 스 니펫을 가져와 확인을 위해 수정을 추가했습니다.
시간 만 사용할 수 있고 분 값이 비어 있으면 시간 만 표시됩니다.
분만 사용할 수 있고 시간 값이 비어있는 경우에도 동일하면 분만 표시됩니다.
분 = 60이면 1 시간으로 표시됩니다. 분 = 1이면 출력은 1 분입니다.
변경 및 편집을 환영합니다. 감사. 다음은 코드입니다.
function convertToHoursMins ($ time) {
$hours = floor($time / 60);
$minutes = ($time % 60);
if($minutes == 0){
if($hours == 1){
$output_format = '%02d hour ';
}else{
$output_format = '%02d hours ';
}
$hoursToMinutes = sprintf($output_format, $hours);
}else if($hours == 0){
if ($minutes < 10) {
$minutes = '0' . $minutes;
}
if($minutes == 1){
$output_format = ' %02d minute ';
}else{
$output_format = ' %02d minutes ';
}
$hoursToMinutes = sprintf($output_format, $minutes);
}else {
if($hours == 1){
$output_format = '%02d hour %02d minutes';
}else{
$output_format = '%02d hours %02d minutes';
}
$hoursToMinutes = sprintf($output_format, $hours, $minutes);
}
return $hoursToMinutes;
}`
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
$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";
참고 URL : https://stackoverflow.com/questions/8563535/convert-number-of-minutes-into-hours-minutes-using-php
'Nice programing' 카테고리의 다른 글
Rails 3 요일 찾기 (0) | 2020.11.25 |
---|---|
데이터 소스에서 셀을 가져 오지 못했습니다. (0) | 2020.11.25 |
xcrun 개발자 경로 변경 (0) | 2020.11.25 |
gem을 사용하여 Ubuntu에 Rails를 설치하는 방법 (0) | 2020.11.25 |
Typescript로 객체 배열에 대한 인터페이스를 어떻게 정의 할 수 있습니까? (0) | 2020.11.25 |