У меня есть временная метка php 1331875634
сгенерированная с использованием функции php time()
.
У меня есть текущая временная метка, сгенерированная с использованием той же функции.
<?php $time1 = "1331875634"; $time2 = time(); echo $differencem; //time difference in minutes echo $differenceh; //time difference in hours ?>
Я хочу узнать разницу между этими двумя за считанные минуты. Протоколы можно разделить на 60, чтобы сделать это в часах.
Вы получаете разницу в секундах, если вы их вычитаете, поэтому разделите ее на 60, чтобы получить минуты и еще 60, чтобы получить часы.
Я создал этот код, чтобы взять стандартный PHP UNIX TIMESTAMP, рассчитать разницу во времени и вернуть стандартное время или специализированный формат времени. Это отлично подходит для определения времени проекта и расчета времени, необходимого для получения результатов.
function timerFormat($start_time, $end_time, $std_format = false) { $total_time = $end_time - $start_time; $days = floor($total_time /86400); $hours = floor($total_time /3600); $minutes = intval(($total_time/60) % 60); $seconds = intval($total_time % 60); $results = ""; if($std_format == false) { if($days > 0) $results .= $days . (($days > 1)?" days ":" day "); if($hours > 0) $results .= $hours . (($hours > 1)?" hours ":" hour "); if($minutes > 0) $results .= $minutes . (($minutes > 1)?" minutes ":" minute "); if($seconds > 0) $results .= $seconds . (($seconds > 1)?" seconds ":" second "); } else { if($days > 0) $results = $days . (($days > 1)?" days ":" day "); $results = sprintf("%s%02d:%02d:%02d",$results,$hours,$minutes,$seconds); } return $results; } Example: $begin_routine_time = time(); echo(timerFormat($begin_routine_time, $time()));
$datetime1 = new DateTime(date('Ymd H:i:s', 1331875634)); $datetime2 = new DateTime(date('Ymd H:i:s')); $oDiff = $datetime1->diff($datetime2); echo $oDiff->y.' Years <br/>'; echo $oDiff->m.' Months <br/>'; echo $oDiff->d.' Days <br/>'; echo $oDiff->h.' Hours <br/>'; echo $oDiff->i.' Minutes <br/>'; echo $oDiff->s.' Seconds <br/>';
Как-то мне нужно было конвертировать секунды к времени, как 1 день 03:34:13 дней часов: minuts: secondes
Я написал эту функцию
function sECONDS_TO_HMS($seconds) { $days = floor($seconds/86400); $hrs = floor($seconds/3600); $mins = intval(($seconds / 60) % 60); $sec = intval($seconds % 60); if($days>0){ //echo $days;exit; $hrs = str_pad($hrs,2,'0',STR_PAD_LEFT); $hours=$hrs-($days*24); $return_days = $days." Days "; $hrs = str_pad($hours,2,'0',STR_PAD_LEFT); }else{ $return_days=""; $hrs = str_pad($hrs,2,'0',STR_PAD_LEFT); } $mins = str_pad($mins,2,'0',STR_PAD_LEFT); $sec = str_pad($sec,2,'0',STR_PAD_LEFT); return $return_days.$hrs.":".$mins.":".$sec; } echo sECONDS_TO_HMS(65); // 00:01:05 echo sECONDS_TO_HMS(76325); //21:12:05 echo sECONDS_TO_HMS(345872); // 4 Days 00:04:32
Я думаю, это может быть полезно для вас.