beautifier строки даты в php не работает должным образом - PullRequest
0 голосов
/ 13 февраля 2012
function hace($fecha){
        //obtener la hora en formato unix
        $ahora=time()+3600;
        $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);
        $meses=floor($dias/30);
        $anyos = floor($meses/12);
        //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 get_texto_clave('hace') ." ".$minutos." ".get_texto_clave('minutes')." " .get_texto_clave('a_go');
        }elseif($dias<=0){
                return get_texto_clave('hace') ." ".$horas." ".get_texto_clave('hours') ." ". get_texto_clave('and') ." ".$minutos." ".get_texto_clave('minutes');
        }elseif($dias>1 &&  $meses < 1){
                return get_texto_clave('hace') ." ".$dias." ".get_texto_clave('dias');
        }elseif($meses>=12){
                return get_texto_clave('hace') ." ".$meses." ".get_texto_clave('meses');
        }else{
                return get_texto_clave('hace') ." ".$anyos." ".get_texto_clave('anyos');

        }
}

Привет,

Я не понимаю, почему он только вернется: или часы и минуты, или годы, но всегда 0 лет (это только два возвращения, которые я получаю),

, как это работало нормально, но рассматривало только до дней (поэтому, если пост был старше, чем сегодня, он просто отображал бы, например: 866 дней в пути)

function hace($fecha){
        //obtener la hora en formato unix
        $ahora=time()+3600;
        $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 get_texto_clave('hace') ." ".$minutos." ".get_texto_clave('minutes')." " .get_texto_clave('a_go');
        }elseif($dias<=0){
                return get_texto_clave('hace') ." ".$horas." ".get_texto_clave('hours') ." ". get_texto_clave('and') ." ".$minutos." ".get_texto_clave('minutes');
        }else{
                return get_texto_clave('hace') ." ".$dias." ".get_texto_clave('dias');

        }
}

что мне не хватает?

1 Ответ

0 голосов
/ 13 февраля 2012

Правильный способ сделать это, получить разницу лет, месяцев и т. Д. В комментариях php docs есть ответ: http://www.php.net/manual/en/function.time.php#105257

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...