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

Cómo calcular la diferencia de minuto entre dos fechas-tiempos en PHP?

Pregunta hecha hace 15 años, 2 meses, 14 días - Por codeglitch


11 Respuestas:

  • Las respuestas anteriores son para versiones anteriores de PHP. Utilice la clase DateTime para hacer cualquier cálculo de fecha ahora que PHP 5.3 es la norma. Eg.

    $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
    '; echo $since_start->y.' years
    '; echo $since_start->m.' months
    '; echo $since_start->d.' days
    '; echo $since_start->h.' hours
    '; echo $since_start->i.' minutes
    '; echo $since_start->s.' seconds
    ';

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

    El código anterior saldrá:

    Total de 1837 días
    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 producirá:

    2645654 minutos

    Que es el número real de minutos que ha pasado entre las dos fechas. La clase DateTime tomará el ahorro de luz diurna (dependiendo de la zona horaria) en cuenta donde la "vieja manera" no. Lea el manual sobre Fecha y Tiempo http://www.php.net/manual/en/book.datetime.php

    Respondida el Dec 13, 2008 a las 13:14 - por bytebarricade

    Votos positivos: 0 | Votos negativos: 0

  • 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";
    

    Respondida el Dec 13, 2008 a las 13:19 - por syntaxsensei

    Votos positivos: 0 | Votos negativos: 0

  • Subir el pasado la mayor parte del futuro más uno y dividir por 60.

    Los tiempos se hacen en formato Unix así que son solo un gran número mostrando el número de segundos de January 1, 1970, 00:00:00 GMT

    Respondida el Dec 13, 2008 a las 13:24 - por codecrafty

    Votos positivos: 0 | Votos negativos: 0

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

    Respondida el Dec 13, 2008 a las 13:33 - por byteexplorer

    Votos positivos: 0 | Votos negativos: 0

  • php
    $start = strtotime('12:01:00');
    $end = strtotime('13:16:00');
    $mins = ($end - $start) / 60;
    echo $mins;
    ?
    

    Producto:

    75
    

    Respondida el Dec 13, 2008 a las 13:40 - por codecrusaderx58e2

    Votos positivos: 0 | Votos negativos: 0

  • DateTime::diff es genial, pero incómodo para este tipo de cálculos que requieren un solo resultado de unidad. Retraer manualmente los horarios funciona mejor:

    $date1 = new DateTime('2020-09-01 01:00:00');
    $date2 = new DateTime('2021-09-01 14:00:00');
    $diff_mins = abs($date1->getTimestamp() - $date2->getTimestamp()) / 60;
    

    Respondida el Dec 13, 2008 a las 13:49 - por techtrailblazer

    Votos positivos: 0 | Votos negativos: 0

  • Funcionó en mis programas, estoy usando date_diff, puedes comprobar date_diff manual Aquí..

    $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);
    

    Tienes resultados que quieres.

    Respondida el Dec 13, 2008 a las 13:57 - por pixelpioneerc4b5

    Votos positivos: 0 | Votos negativos: 0

  • otra manera con la zona temporal.

    $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);
    

    Respondida el Dec 13, 2008 a las 14:05 - por webweaverx

    Votos positivos: 0 | Votos negativos: 0

  • Escribí esta función para uno mi sitio web del 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 conseguirí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')."
    "; $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')."
    "; 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"; } } ?>

    Guardarlo como un archivo suponer "date.php". Llame a la función de 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:

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

    Respondida el Dec 13, 2008 a las 14:15 - por geekglitcher

    Votos positivos: 0 | Votos negativos: 0

  • Para calcular la diferencia de tiempo en minutos entre dos fechas-tiempos en PHP, puedes usar la función diff() de la clase DateTime. Aquí te dejo un ejemplo de cómo hacerlo:

    php
    $fecha1 = new DateTime('2022-10-10 14:30:00');
    $fecha2 = new DateTime('2022-10-10 15:00:00');
    
    $intervalo = $fecha1->diff($fecha2);
    $diferencia_en_minutos = $intervalo->i;
    
    echo "La diferencia en minutos entre las dos fechas es de: $diferencia_en_minutos minutos";
    

    En este código, primero creamos dos objetos DateTime con las fechas y tiempos que queremos comparar. Luego, obtenemos la diferencia entre estas dos fechas utilizando el método diff(). Finalmente, accedemos al atributo i del objeto $intervalo, que representa la cantidad de minutos de diferencia entre las fechas.

    Espero que esta explicación haya sido de ayuda. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 14, 2008 a las 13:14 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • ```python def calcular hora actual generar informe import datetime

    pero `enter `

    def función ` --

    ```
    1 y que se puede \nMmuendar

    Respondida el Dec 14, 2008 a las 13:18 - por Gemini

    Votos positivos: 0 | Votos negativos: 0