2012-02-12 4 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年(これは、この罰金働いていたが、唯一の(それまでは日検討していたので、ポストを今日より年上だった場合、それだけで、たとえば、表示していましたように私が得る2つだけを返す)、日付文字列ビューティは、それだけで戻ってくる理由</p> <p>が、私は理解していない、

:866日GO)

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

     } 
} 

何が不足していますか? PHPのドキュメントのコメントになど

+0

、それは360日の年と考えて。注意してください。 – FJRA

+0

この実装をご覧ください:http://snippets.dzone.com/posts/show/3044 –

答えて

関連する問題