Foros del Web » Programando para Internet » PHP »

Resta de fecha actual con fecha ingresada

Estas en el tema de Resta de fecha actual con fecha ingresada en el foro de PHP en Foros del Web. holas, he estado leyendo varias consultas que se han hecho con respecto a las fechas pero con ninguna de las respuestas que ha puesto he ...
  #1 (permalink)  
Antiguo 06/10/2006, 11:32
 
Fecha de Ingreso: octubre-2003
Mensajes: 17
Antigüedad: 20 años, 5 meses
Puntos: 0
Resta de fecha actual con fecha ingresada

holas,
he estado leyendo varias consultas que se han hecho con respecto a las fechas pero con ninguna de las respuestas que ha puesto he podio lograr hacer una resta de fechas entre la fecha actual y una fecha que está guarda en un campo de una tabla. La resta necesito que me la de solamente en años.
Esto es lo que estoy haciendo según lo que he visto en este foro:

Código PHP:
$ano_hoy mysql_query("SELECT DATE_FORMAT(NOW(), '%Y'  ) as ano_hoy",$bd); //para obtener fecha actual

$ano_rip mysql_query("SELECT fallecimiento FROM socios WHERE num_socio=$num_socio",$bd); //para obtener la fecha de un campo

do 
{
echo 
"<td><center>".$row["notificacion"]."</center>";
$diferencia mysql_query ("SELECT DATEDIFF('$ano_hoy','$ano_rip')",$bd); 
if(
$diferencia>=10)
echo 
"<center>RETIRAR</center>";
echo 
"</td>";

} while (
$row mysql_fetch_array($result)); 
Esta dentro de un ciclo porque pretendo que me mande el mensaje "RETIRAR" en la columna "NOTIFICACION" cuando la resta entra ambas fechas me de un resultado menor o igual a 10 años, por cada uno de los registros.

Saludos.
  #2 (permalink)  
Antiguo 06/10/2006, 11:54
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
No sé si en mysql será igual pero yo uso en la consulta:

Código PHP:
$ano_rip mysql_query("SELECT year(fallecimiento) FROM socios WHERE num_socio=$num_socio",$bd); //para obtener la fecha de un campo 
Eso en SQL Server pero seguro q en Mysql hay algo parecido.

En caso contrario, cosa q dudo siempre puedes usar la función mktime para buscar la diferencia en segundos y luego hacer unas cuentas matemáticas para sacar la diferencia en años.

Aun así:

Código PHP:
$ano_hoy=date("Y"); //Obtienes el año actual, no es necesario  hacer una consulta pa obtenerlo. 
Y si obtienes la fecha puedes hacer un explode x el caracter separador y luego pillar el año solo del array creado con el explode para hacer la resta.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 06/10/2006, 12:14
 
Fecha de Ingreso: octubre-2003
Mensajes: 17
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias djreficul,
me has ayudao un poco mas.

$ano_rip = mysql_query("SELECT year(fallecimiento) FROM socios WHERE num_socio=$num_socio",$bd);

eso funciona tambien en mysql, al poner year me entrega solo el año.

Ahora estoy viendo lo de la resta, al parecer nos e peuden llegar y restar aunque tenga ambos años numericos en 2 variables y luego restarlas asi:

$diferencia=$ano_hoy-$ano_rip;

siendo que en ambas variables quedan solo valores numericos.
  #4 (permalink)  
Antiguo 06/10/2006, 12:18
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Perdona, pero en $ano_rip estás almacenando el resultado de la consulta, no el valor q kieres obtener.

Para obtener el resultado mejor:

Código PHP:
$consulta mysql_query("SELECT year(fallecimiento) FROM socios WHERE num_socio=$num_socio",$bd);
$ano_rip=mysql_result ($consulta,0,0); //Obtenemos el primer campo de la primera fila. En mysql empiezan x 0.
//Si lo deseas puedes hacer comprobaciones extras antes, si se devuelve solo una fila, si la consulta ha sido valida, todo eso a tu eleccion.
$ano_hoy=date("Y");
$diferencia=$ano_hoy-$ano_rip
Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #5 (permalink)  
Antiguo 06/10/2006, 12:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 17
Antigüedad: 20 años, 5 meses
Puntos: 0
Vale muchas gracias, ahi si me resultó.
Y de paso aclaré algunos conceptos. :P

Gracias.
  #6 (permalink)  
Antiguo 06/10/2006, 12:32
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Yo te he puesto un ejemplo con mysql_result xq solo obtienes un resultado unico de una sola fila.

Cuando sean varios campos y varias filas es mejor usar las funciones mysql_fetch_array o mysql_fetch_row.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #7 (permalink)  
Antiguo 22/02/2009, 12:12
 
Fecha de Ingreso: febrero-2009
Mensajes: 1
Antigüedad: 15 años, 2 meses
Puntos: 0
Re: Resta de fecha actual con fecha ingresada

Hola soy nuevo en este Foro y soy fanático al PHP y MySQL, ese es mi mundo, quiero darte un código que le resta la fecha actual a los días especificados, mira el código:

DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), "%Y-%m-%d");

Espero que este código te sirva como los demás.
Saludos randolf.
  #8 (permalink)  
Antiguo 22/02/2009, 17:59
 
Fecha de Ingreso: agosto-2008
Ubicación: D,F
Mensajes: 412
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: Resta de fecha actual con fecha ingresada

hola bueno ya que tomaron este tema que yo tambien tengo esa dudad en mysql tendira que meter un campo donde me ponga los dias de la resta pero como lo haria , a lo que me refiero es por ejemplo yo tengo un hoja donde modifico algunas datos y quiero ponerle un cjeckbox donde me ponga la fecha actual como de confirmar por decirlo asi en esa hoja tendria que meter el siguiente codigo
Código PHP:
DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), "%Y-%m-%d"); 
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 06:59.