Foros del Web » Programando para Internet » PHP »

Sobre date() (ando mal para las matematicas)

Estas en el tema de Sobre date() (ando mal para las matematicas) en el foro de PHP en Foros del Web. Bueno mi duda no es duda, es mas bien ayuda sobre numeros matematicos... se trata de este codigo, que me dice que a cuanto tiempo ...
  #1 (permalink)  
Antiguo 13/12/2003, 19:12
 
Fecha de Ingreso: diciembre-2003
Mensajes: 34
Antigüedad: 20 años, 4 meses
Puntos: 0
Sobre date() (ando mal para las matematicas)

Bueno mi duda no es duda, es mas bien ayuda sobre numeros matematicos... se trata de este codigo, que me dice que a cuanto tiempo se posteo algo, un ejemplo "el mensaje se posteo hace 1 hora" o "el mensaje se posteo hace 22 dias".

Bueno este codigo solo tiene para horas y dias... quisiera agregarle para minutos, horas, dias, semanas, y meses... solo esas 5 que mencione. Espero que me ayuden con estas matematicas!. Aca viene el codigo:

$query = "select * from _LOG order by fecha desc";
$resp = mysql_query($query);
while ($datos = mysql_fetch_array($resp)) {
$atime = time();
$currentYear = date("Y", $atime);
$currentDay = date("z", $atime);
$currentHour = date("H", $atime);
$postYear = date("Y",$datos[fecha]);
$postDay = date("z",$datos[fecha]);
$postHour = date("H",$datos[fecha]);
$hours = $currentHour - $postHour;
if ($currentYear != $postYear) $days =($currentDay+365) - $postDay ;
else $days = $currentDay - $postDay;
if ($days == 0) {
if ($hours <= 1) $days = "Eso fué hace 1 hr'...";
else $days = "Eso fué hace $hours hrs'...";
}
else if ($days == 1) {
if ($currentHour > $postHour) $days = "ayer";
else {
$temp = $currentHour + (24-$postHour);
$days ="Eso fué hace $temp hrs'...";
}
}
else $days = "Eso fué hace $days dias'...";
$mostrar--;
}
  #2 (permalink)  
Antiguo 13/12/2003, 19:40
 
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 249
Antigüedad: 20 años, 4 meses
Puntos: 0
$ano = $days/365;
$resto = $days - $ano;
$meses = $resto/30;
$resto2 = $resto - $meses;
$semanas = $resto2/7;

echo "Hace $ano años, $meses meses, $semanas semanas";

te faltaría redondear los valores: $ano, $meses y $semanas para abajo, y queda perfecto.
__________________
Crónicas de un Programador es un sitio que registra lo que ocurre cada día en la vida de un desarrollador. Aquí, intentaremos contar nuestras experiencias diarias, errores, aciertos y técnicas, que pueden llegar a serles de utilidad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:58.