Foros del Web » Programando para Internet » PHP »

comparar 3 fechas.

Estas en el tema de comparar 3 fechas. en el foro de PHP en Foros del Web. Dispongo de un formulario donde solicito fecha inicial y final: Código PHP: < form name = "form"  action = "grafica.php"  method = "post" >                           < table width ...
  #1 (permalink)  
Antiguo 14/05/2009, 07:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
comparar 3 fechas.

Dispongo de un formulario donde solicito fecha inicial y final:

Código PHP:
<form name="form" action="grafica.php" method="post">                          
<
table width=55border=0 cellspacing=0 cellpadding=2 align=center>            
 <
tr>                                                                          
    <
td width=20% class=Estilo1 align=center>Fecha Desde                        
     
<div id="formafecha">                                                      
      <
input name="fecha_inicio" type="text" value="" size=10 maxlength=10>     
     </
div>                                                                     
    </
td>                                                                       
    <
td width=60align=center class=Estilo2><----Formato de Ingreso (YYYY/MM/DD)----></td>                                                                     
    <
td width=20% class=Estilo1 align=center>Fecha Hasta                        
     
<div id="formafecha">                                                      
      <
input name="fecha_final" type="text" value="" size=10 maxlength=10>      
     </
div>                                                                     
    </
td>                                                                       
  </
tr>                                                                         
</
table>
</
form
Registro de tabla de datos:

Tabla:servicio

Donde f_solicitud, definida como date formato predeterminado 0000-00-00 (fecha de solicitud).

Con ellos selecciono todos los registros que cumplan la condición de:

Código PHP:
If ($f_solicitud >= fecha_inicio && f_solicitud <= fecha_final)
{
   
// Muestro los registros correspondientes.

He intentado realizar esta consulta de variadas formas utilizando:
- date.parse
- getdate – mktime,
- etc.

Y hasta ahora no he logrado que muestre los datos reales.
Ahora mi problema es como realizó esta comparación de fechas.

Alguien que me pueda asesorar.

Desde ya gracias.
  #2 (permalink)  
Antiguo 14/05/2009, 08:01
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: comparar 3 fechas.

Lo comparas con datos de una tabla de DB?
Si es asi podrias hacer la consulta comparando las fechas en el where del sql.

De no ser con mysql, podrias usar esto comparar fechas

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 14/05/2009, 08:10
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
De acuerdo Respuesta: comparar 3 fechas.

Buenas,

Mira esto
Código PHP:
Select Form Tabla Where fecha BETWEEN '$fecha_1' AND '$fecha_2' 
Saluidos
  #4 (permalink)  
Antiguo 14/05/2009, 08:42
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: comparar 3 fechas.

Si las comparo con una fecha que esta en una TABLA de Base de Datos.
Pero recuerda que segun formulario las fechas las pido con formato YYYY/MM/DD, tanto fecha_inicial como fecha_final.

Ahora con la que comparo proveniente de una tabla (servicio) de datos:
f_solicitud de formato date predeterminada 0000-00-00

¿Es tan sencillo compararlas dentro del where, independiente del formato?

$sql="Select * Form servicio Where f_solicitud BETWEEN '$fecha_inicio' AND '$fecha_final' ";
  #5 (permalink)  
Antiguo 14/05/2009, 08:50
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 3 meses
Puntos: 7
Respuesta: comparar 3 fechas.

Sí, acabo de probar y MySQL no hace problema si el formato es YYYY-MM-DD o YYYY/MM/DD.

Si ya la pedís con ese formato no existe ningún inconveniente.

Saludos.
  #6 (permalink)  
Antiguo 14/05/2009, 08:51
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: comparar 3 fechas.

usa date_format("fecha_a_formatear","%Y-%m-%d")


ahh y echale un ojo a este articulo
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #7 (permalink)  
Antiguo 14/05/2009, 09:13
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: comparar 3 fechas.

Se agradece toda su cooperacion para hacer de este foro una gran herramienta de sabiduria sobretodo para aquellos que recien comienzan con esta bella herramienta.

El problema esta solucionado.
Pero me surge otra inquietud.

si tengo 2 fechas.

$fecha1="2009-01-01"; //corresponde al inicio de la consulta.
$fecha2="2009-05-13"; //corresponde hasta cuando es la consulta.

¿Cómo válido que fecha2 sea siempre superior a fecha1?
  #8 (permalink)  
Antiguo 14/05/2009, 09:33
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: comparar 3 fechas.

Para que deseas validar eso?, de todas formas en el sql no traera registros ya que no concuerda.
Pero si aun asi deseas validar esto, puedes ver el enlace que te deje arriba.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
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 07:55.