2010-12-28 21 views
0

私はこの仕事をするつもりです。 タイムスタンプの代わりにどれくらい時間がかかるのかを表示したいのですが。日、時間、分を表示するmysqlのタイムスタンプから行く

この関数が見つかりましたが、unixの日付で動作します。あなたは私が計画を変更する必要がまたは私は正しく、UNIXに日付形式を変換する必要があると思う...

をのstrtotime($のfecha)を使用して、それを変換しようとしたが、私はそれとそのヌルをエコー?

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"; 
     } 
       } 
+1

$ fechaはどの形式ですか?それはUNIXタイムスタンプ番号か日時文字列ですか? –

+0

'$ fecha'が解析可能な日付を含む文字列であれば、関数はokでなければなりません。 –

+0

私は、たとえば、それがタイムスタンプだとそれに含まれる言ったように:「2010年12月22日10時12分30秒」 –

答えて

2

私のような何かをするだろう:

$diff = $ahora - $fecha_unix; 
$sec = $diff % 60; 
$min = floor($diff/60) % 60; 
$hours = floor($diff/3600) % 24; 
$days = floor($diff/86400); 
関連する問題