показать дни, часы, минуты с отметкой времени mysql

Я пытаюсь сделать эту работу. то, что я хочу, это показать, как долго идти вместо метки времени.

Нашел эту функцию, но она работает с датой unix. попытался преобразовать его с помощью strtotime ($ fecha), но я повторяю его и его значение null...

Вы думаете, мне нужно изменить планы или мне нужно только правильно преобразовать формат даты в unix?

function hace($fecha){
        //obtener la hora en formato unix
        $ahora=time();
        $fecha_unix = strtotime($fecha);
        mostrar_notificacion($fecha_unix);
        //obtener la diferencia de segundos
        $segundos=$ahora-$fecha_unix;

        //dias es la division de n segs entre 86400 segundos que representa un dia;
        $dias=floor($segundos/86400);

        //mod_hora es el sobrante, en horas, de la division de días;
        $mod_hora=$segundos%86400;

        //hora es la division entre el sobrante de horas y 3600 segundos que representa una hora;
        $horas=floor($mod_hora/3600);

        //mod_minuto es el sobrante, en minutos, de la division de horas;
        $mod_minuto=$mod_hora%3600;

        //minuto es la division entre el sobrante y 60 segundos que representa un minuto;
        $minutos=floor($mod_minuto/60);

        if($horas<=0){
                return "hace ".$minutos." minutos";
        }elseif($dias<=0){
                return "hace ".$horas." horas ".$minutos." minutos";
        }else{
                return "hace ".$dias." dias ".$horas." horas y ".$minutos." minutos";
        }
                }

person Toni Michel Caubet    schedule 28.12.2010    source источник
comment
какой формат у $fecha? это номер временной метки UNIX или строка даты и времени?   -  person    schedule 28.12.2010
comment
если $fecha — это строка, содержащая дату, которую можно анализировать, то функция должна быть в порядке.   -  person Salman A    schedule 28.12.2010
comment
как я уже сказал, это метка времени, и она содержит, например: «2010-12-22 10:12:30».   -  person Toni Michel Caubet    schedule 28.12.2010


Ответы (2)


Я бы сделал что-то вроде:

$diff = $ahora - $fecha_unix;
$sec = $diff % 60;
$min = floor($diff / 60) % 60;
$hours = floor($diff / 3600) % 24;
$days = floor($diff / 86400);
person Community    schedule 28.12.2010

Вы ознакомились с комментарием к этому руководству по PHP?

person ncuesta    schedule 28.12.2010