2012-02-12 36 views
0
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'); 

     } 
} 

我错过了什么?

+0

的方式完成您的第一个代码,它认为年360天。小心。 – FJRA 2012-02-12 22:11:14

+0

看看这个实现:http://snippets.dzone.com/posts/show/3044 – 2012-02-12 22:12:51

回答