Foros del Web » Programando para Internet » PHP »

Ayuda con fechas

Estas en el tema de Ayuda con fechas en el foro de PHP en Foros del Web. Hola amigos, y gracias de antemano por la respuesta. Tengo una capo tipo fecha DATE en la base de datos de MySQL, la cual quiero ...
  #1 (permalink)  
Antiguo 02/07/2005, 20:43
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Ayuda con fechas

Hola amigos, y gracias de antemano por la respuesta.
Tengo una capo tipo fecha DATE en la base de datos de MySQL, la cual quiero comparar con la fecha actual y de acuerdo a si es mayor o menor, responder son una true o false. En otra consulta debo restar tres meses a la fecha actual y comparar con lo fecha que está en la base de datos y de acuerdo a si es menor o igual debo responder "NO" de lo contrario, si es mayor debo responder "SI"

Aun inicio trabajé con ASP, en la cual usé los siguientes códigos:
Cita:
<%
Dim RecarnetizacionVence
Dim RecarnetizacionControl
RecarnetizacionVence = Tabla.Fields("RecarnetVence")
RecarnetizacionControl = Date()
if cdate(RecarnetizacionControl) >= cdate(RecarnetizacionVence) then
Response.write "NO"
else
Response.write "SI"
end if
%>
y para el otro caso:
Cita:
<%
Dim FechaHabil
Dim MesesHabil
FechaHabil = Tabla.Fields("HabilDesde")
MesesHabil = DateAdd("m", -3, Now())
if cdate(MesesHabil) >= cdate(FechaHabil) then
Response.write "NO"
else
Response.write "SI"
end if
%>
Necesito de sus ayudas por favor, estuve leyendo las FAQs, pero no encontré una solución adecuada para problema.
Por allí encontré algo como esto, pero no se como usarlo exactamente:
Código PHP:
if($fecha_actual <= $fecha_recarnetizacion){
    
#Está vigente
}else{
    
# Está vencida

  #2 (permalink)  
Antiguo 03/07/2005, 09:21
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Por favor, haber si me pueden dar una manito con esta consulta, me es urgente.
  #3 (permalink)  
Antiguo 03/07/2005, 13:43
 
Fecha de Ingreso: septiembre-2003
Ubicación: Sentado frente a un computador
Mensajes: 191
Antigüedad: 14 años, 3 meses
Puntos: 0
aqui hay un buen manual del manejo de fecha

http://www.mysql-hispano.org/page.php?id=14&pag=2

disculpa que no te ayude mas, ando corto de tiempo ;(, en la noche te puedo ayudar mas
  #4 (permalink)  
Antiguo 03/07/2005, 21:39
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Gracias por tu ayuda.
Si alguien me podria dar alguna sugerencia, le estaré muy afradecido.
  #5 (permalink)  
Antiguo 04/07/2005, 09:04
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Alguna otra idea por favorrrrrrr.
Gracias.
  #6 (permalink)  
Antiguo 05/07/2005, 01:19
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por edcala
Tengo una capo tipo fecha DATE en la base de datos de MySQL, la cual quiero comparar con la fecha actual y de acuerdo a si es mayor o menor, responder son una true o false.
¿responder? ... Presiento (no me queda claro) que esa comparación necesitas hacerla con PHP después de hacer la consulta; Me parece puedes hacerla directamente, no estoy seguro yo siempre hago uso de la función strtotime() y te recomendaría igual la usaras...

Cita:
Iniciado por edcala
En otra consulta debo restar tres meses a la fecha actual y comparar con lo fecha que está en la base de datos y de acuerdo a si es menor o igual debo responder "NO" de lo contrario, si es mayor debo responder "SI"
De nuevo... ¿responder?. Con SQL puedes hacer consultar ó modificar la BD más no puedes mostrar algo en pantalla... quizá en este último caso puedes hacer una consulta (entiendo solo compararías con una fecha) y con PHP actuar dependiendo hubo o no resultados; para hacer la consulta ya te dejaron un enlace por demás útil, para ver si hubo resultados aplicarías la función mysql_num_rows().

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 06/07/2005, 02:42
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Hola nuevamente.
Agradesco a "dark_goldviper" por darme una referencia a un manual de MySQL para el amanejo de fechas, pues me ayudó a despejar muchas dudas, aunque no pude solucionar mi problema.
También agradesco a "jam1138" y "dark_goldviper" por responder, a pesar de que haya muchos Faqs refernetes al tema, aun que no pude encontrar uno como para mi necesidad.

Ahi navegando en el maravilloso mundo del internet, encontré un código que se parecia amis necesidades, lo cual lo adapté y solucioné parte de mis problemas. Ahí va el código, para los que están en el mismo lio que yo:
Código PHP:
$actual date("Y-m-d ");
$vencimiento $carnet_vence;
list(
$fechaAct) = explode(" "$actual);
list(
$yearAct$mesAct$dayAct) = explode("-"$fechaAct);
list(
$fechaVen) = explode(" "$vencimiento);
list(
$yearVen$mesVen$dayVen) = explode("-"$fechaVen);
$sAct mktime0,0,0,$mesAct$dayAct$yearAct);
$sVen mktime0,0,0,$mesVen$dayVen$yearVen);
$diffSeg $sAct $sVen;
$diffMin $diffSeg 60;
$diffHoras $diffMin 60;
$diffdias =$diffHoras/24;
if ((
$diffdias) <0)
      echo 
"SI <br>";
if ((
$diffdias) >0)
      echo 
"NO <br>";
if ((
$diffdias) ==0)
      echo 
"Vence HOY <br>";
echo; 
Explicando un poco el código:
Tengo una fecha en la base de datos que hace referencia a la fecha de vencimiento de un carnet, lo cual comparo con la fecha actual y de acuerdo a la respuesta imprimo en la pantalla un "SI" cuando la fecha de vencimiento es mayor que la fecha actual por lo tanto la persona aun está recarnetizada, de loc contrario su recarnetizacion a vencido e imprimo en pantalla un "NO" que indica que la persona ya no está recarnetizada.

A los maestros, pediría si se puede simplificar este código o de que otra forma podria hacerce lo mencionado.

Aún me falta solucionar la segunda parte.
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 08:44.