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 :(得分:0)
正确的方法是获得年,月等的差异。在php docs的评论中是答案:http://www.php.net/manual/en/function.time.php#105257