2012-02-12 33 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

回答