restar obtener minutos horas fechas fecha entre diferencia comparar calcular años actual php date time minute

horas - Cómo obtener la diferencia de tiempo en minutos en PHP



obtener diferencia en minutos php (12)

¿Cómo calcular la diferencia de minutos entre dos fechas y horas en PHP?


Aquí está la respuesta:

$to_time = strtotime("2008-12-13 10:42:00"); $from_time = strtotime("2008-12-13 10:21:00"); echo round(abs($to_time - $from_time) / 60,2). " minute";


Así es como mostré "xx times ago" en php> 5.2 .. aquí hay más información sobre el objeto DateTime

//Usage: $pubDate = $row[''rssfeed''][''pubDates'']; // e.g. this could be like ''Sun, 10 Nov 2013 14:26:00 GMT'' $diff = ago($pubDate); // output: 23 hrs ago // Return the value of time different in "xx times ago" format function ago($timestamp) { $today = new DateTime(date(''y-m-d h:i:s'')); // [2] //$thatDay = new DateTime(''Sun, 10 Nov 2013 14:26:00 GMT''); $thatDay = new DateTime($timestamp); $dt = $today->diff($thatDay); if ($dt->y > 0) { $number = $dt->y; $unit = "year"; } else if ($dt->m > 0) { $number = $dt->m; $unit = "month"; } else if ($dt->d > 0) { $number = $dt->d; $unit = "day"; } else if ($dt->h > 0) { $number = $dt->h; $unit = "hour"; } else if ($dt->i > 0) { $number = $dt->i; $unit = "minute"; } else if ($dt->s > 0) { $number = $dt->s; $unit = "second"; } $unit .= $number > 1 ? "s" : ""; $ret = $number." ".$unit." "."ago"; return $ret; }


Creo que esto te ayudará

function calculate_time_span($date){ $seconds = strtotime(date(''Y-m-d H:i:s'')) - strtotime($date); $months = floor($seconds / (3600*24*30)); $day = floor($seconds / (3600*24)); $hours = floor($seconds / 3600); $mins = floor(($seconds - ($hours*3600)) / 60); $secs = floor($seconds % 60); if($seconds < 60) $time = $secs." seconds ago"; else if($seconds < 60*60 ) $time = $mins." min ago"; else if($seconds < 24*60*60) $time = $hours." hours ago"; else if($seconds < 24*60*60) $time = $day." day ago"; else $time = $months." month ago"; return $time; }


Escribí esta función para un sitio de mi blog (diferencia entre una fecha pasada y la fecha del servidor). Te dará una salida como esta.

"Hace 49 segundos", "Hace 20 minutos", "Hace 21 horas" y así sucesivamente

He utilizado una función que me proporcionaría la diferencia entre la fecha pasada y la fecha del servidor.

<?php //Code written by purpledesign.in Jan 2014 function dateDiff($date) { $mydate= date("Y-m-d H:i:s"); $theDiff=""; //echo $mydate;//2014-06-06 21:35:55 $datetime1 = date_create($date); $datetime2 = date_create($mydate); $interval = date_diff($datetime1, $datetime2); //echo $interval->format(''%s Seconds %i Minutes %h Hours %d days %m Months %y Year Ago'')."<br>"; $min=$interval->format(''%i''); $sec=$interval->format(''%s''); $hour=$interval->format(''%h''); $mon=$interval->format(''%m''); $day=$interval->format(''%d''); $year=$interval->format(''%y''); if($interval->format(''%i%h%d%m%y'')=="00000") { //echo $interval->format(''%i%h%d%m%y'')."<br>"; return $sec." Seconds"; } else if($interval->format(''%h%d%m%y'')=="0000"){ return $min." Minutes"; } else if($interval->format(''%d%m%y'')=="000"){ return $hour." Hours"; } else if($interval->format(''%m%y'')=="00"){ return $day." Days"; } else if($interval->format(''%y'')=="0"){ return $mon." Months"; } else{ return $year." Years"; } } ?>

Guárdelo como archivo suponga "date.php". Llama a la función desde otra página como esta.

<?php require(''date.php''); $mydate=''2014-11-14 21:35:55''; echo "The Difference between the server''s date and $mydate is:<br> "; echo dateDiff($mydate); ?>

Por supuesto puede modificar la función para pasar dos valores.


Esto ayudará....

function get_time($date,$nosuffix=''''){ $datetime = new DateTime($date); $interval = date_create(''now'')->diff( $datetime ); if(empty($nosuffix))$suffix = ( $interval->invert ? '' ago'' : '''' ); else $suffix=''''; //return $interval->y; if($interval->y >=1) {$count = date(VDATE, strtotime($date)); $text = '''';} elseif($interval->m >=1) {$count = date(''M d'', strtotime($date)); $text = '''';} elseif($interval->d >=1) {$count = $interval->d; $text = ''day'';} elseif($interval->h >=1) {$count = $interval->h; $text = ''hour'';} elseif($interval->i >=1) {$count = $interval->i; $text = ''minute'';} elseif($interval->s ==0) {$count = ''Just Now''; $text = '''';} else {$count = $interval->s; $text = ''second'';} if(empty($text)) return ''<i class="fa fa-clock-o"></i> ''.$count; return ''<i class="fa fa-clock-o"></i> ''.$count.(($count ==1)?(" $text"):(" ${text}s")).'' ''.$suffix; }


Funcionó en mis programas, estoy usando date_diff , puedes consultar el manual de date_diff here .

$start = date_create(''2015-01-26 12:01:00''); $end = date_create(''2015-01-26 13:15:00''); $diff=date_diff($end,$start); print_r($diff);

Obtienes resultados lo que quieres.


Las respuestas anteriores son para versiones anteriores de PHP. Use la clase DateTime para hacer cualquier cálculo de fecha ahora que PHP 5.3 es la norma. P.ej.

$start_date = new DateTime(''2007-09-01 04:10:58''); $since_start = $start_date->diff(new DateTime(''2012-09-11 10:25:00'')); echo $since_start->days.'' days total<br>''; echo $since_start->y.'' years<br>''; echo $since_start->m.'' months<br>''; echo $since_start->d.'' days<br>''; echo $since_start->h.'' hours<br>''; echo $since_start->i.'' minutes<br>''; echo $since_start->s.'' seconds<br>'';

$ since_start es un objeto DateInterval . Tenga en cuenta que la propiedad days está disponible (porque usamos el método diff de la clase DateTime para generar el objeto DateInterval).

El código anterior dará salida:

1837 días en total
5 años
0 meses
10 días
6 horas
14 minutos
2 segundos

Para obtener el número total de minutos:

$minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.'' minutes'';

Esto dará como resultado:

2645654 minutos

Cuál es el número real de minutos que han pasado entre las dos fechas. La clase DateTime tendrá en cuenta el horario de verano (dependiendo de la zona horaria) donde la "forma antigua" no lo hará. Lea el manual sobre Fecha y Hora http://www.php.net/manual/en/book.datetime.php


Resta el pasado más uno del futuro más uno y divide por 60.

Los tiempos se realizan en formato Unix, por lo que son solo un número grande que muestra la cantidad de segundos desde January 1, 1970, 00:00:00 GMT


Una versión más universal que devuelve resultados en días, horas, minutos o segundos, incluyendo fracciones / decimales:

function DateDiffInterval($sDate1, $sDate2, $sUnit=''H'') { //subtract $sDate2-$sDate1 and return the difference in $sUnit (Days,Hours,Minutes,Seconds) $nInterval = strtotime($sDate2) - strtotime($sDate1); if ($sUnit==''D'') { // days $nInterval = $nInterval/60/60/24; } else if ($sUnit==''H'') { // hours $nInterval = $nInterval/60/60; } else if ($sUnit==''M'') { // minutes $nInterval = $nInterval/60; } else if ($sUnit==''S'') { // seconds } return $nInterval; } //DateDiffInterval


otra manera con la zona horaria.

$start_date = new DateTime("2013-12-24 06:00:00",new DateTimeZone(''Pacific/Nauru'')); $end_date = new DateTime("2013-12-24 06:45:00", new DateTimeZone(''Pacific/Nauru'')); $interval = $start_date->diff($end_date); $hours = $interval->format(''%h''); $minutes = $interval->format(''%i''); echo ''Diff. in minutes is: ''.($hours * 60 + $minutes);


<?php $date1 = time(); sleep(2000); $date2 = time(); $mins = ($date2 - $date1) / 60; echo $mins; ?>


function date_getFullTimeDifference( $start, $end ) { $uts[''start''] = strtotime( $start ); $uts[''end''] = strtotime( $end ); if( $uts[''start'']!==-1 && $uts[''end'']!==-1 ) { if( $uts[''end''] >= $uts[''start''] ) { $diff = $uts[''end''] - $uts[''start'']; if( $years=intval((floor($diff/31104000))) ) $diff = $diff % 31104000; if( $months=intval((floor($diff/2592000))) ) $diff = $diff % 2592000; if( $days=intval((floor($diff/86400))) ) $diff = $diff % 86400; if( $hours=intval((floor($diff/3600))) ) $diff = $diff % 3600; if( $minutes=intval((floor($diff/60))) ) $diff = $diff % 60; $diff = intval( $diff ); return( array(''years''=>$years,''months''=>$months,''days''=>$days, ''hours''=>$hours, ''minutes''=>$minutes, ''seconds''=>$diff) ); } else { echo "Ending date/time is earlier than the start date/time"; } } else { echo "Invalid date/time data detected"; } }