Foros del Web » Programando para Internet » PHP »

Fechas..

Estas en el tema de Fechas.. en el foro de PHP en Foros del Web. obtengo de una base de datos las fechas con este formato... 2004-11-16 deseo comparar estas fechas... 2004-11-16 <= 2004-11-17 para poder obtener unos resultados.. pero ...
  #1 (permalink)  
Antiguo 16/11/2004, 13:46
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
Fechas..

obtengo de una base de datos las fechas con este formato...

2004-11-16

deseo comparar estas fechas...

2004-11-16 <= 2004-11-17

para poder obtener unos resultados.. pero cuando realizo el if.. siempre sale verdadero.. asi la segunda fecha sea mayor.. que estaré haciendo mal?... o esa no es la manera de comparar fechas??


un saludo...
  #2 (permalink)  
Antiguo 16/11/2004, 14:50
 
Fecha de Ingreso: mayo-2004
Ubicación: SurOeste de Guayaquil
Mensajes: 241
Antigüedad: 19 años, 11 meses
Puntos: 0
de esa manera siempre va a ser verdadero

no se lo quieres hacer

explica lo que quieres hacer
__________________
javier
  #3 (permalink)  
Antiguo 16/11/2004, 14:55
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
muestra parte del codigo que usas, sobre todo tu if.
  #4 (permalink)  
Antiguo 16/11/2004, 15:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero si usa BD y campos de fecha (DATE o similar) debes usar SQL no PHP para ese tipo de comparaciones (en principio).

Un saludo,
  #5 (permalink)  
Antiguo 16/11/2004, 15:03
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
if ($row["fecierre" ]<= $row[fepropuesta_cierre])
{
echo "Optimo";
}
else
{
echo "No es optimo";
}

El formato de los campos que traigo tipo fecha desde mysql es
2004-11-16
año mes dia
  #6 (permalink)  
Antiguo 16/11/2004, 15:16
 
Fecha de Ingreso: mayo-2004
Ubicación: SurOeste de Guayaquil
Mensajes: 241
Antigüedad: 19 años, 11 meses
Puntos: 0
saludos

si estas comparando estas dos fechas 2004-11-16 <= 2004-11-17
fijate que 2004-11-16 es menor que 2004-11-17
a si que por tanto va a ser verdad y lo que escribira segun tu codigo es Optimo
si lo que quieres que salga No es Optimo Invierte la condicion
__________________
javier
  #7 (permalink)  
Antiguo 16/11/2004, 16:06
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

Cita:
Iniciado por Salome
if ($row["fecierre" ]<= $row[fepropuesta_cierre])
{
echo "Optimo";
}
else
{
echo "No es optimo";
}

El formato de los campos que traigo tipo fecha desde mysql es
2004-11-16
año mes dia
Salome y si haces el cálculo de la siguiente forma

Código PHP:
//calculo entre 2 fechas para obtener el resultados de los días transcurridos

$diasmysql_query("SELECT TO_DAYS(fecha2) - TO_DAYS(fecha1) FROM tabla_fechas WHERE id='$tal_campo'");

$calculo mysql_result($dias,0);

//salida
echo $calculo

__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.

Última edición por andinistas; 16/11/2004 a las 16:11
  #8 (permalink)  
Antiguo 16/11/2004, 16:12
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
jayapata12, hola... si sale optimo porque obviamente es optimo... el cuento no funciona es cuando la primera es mayor.... sigue saliendo optimo.. por eso mi pregunta.. ahi era solo un ejemplo.. quizas no fuí lo soficientemente clara.. comienzo de nuevo...

tengo estos dos campos en la base de datos...

una fecha de inicio y una fecha de finalización... entonces debo preguntar.. si mi fecha de inicio es menor o igual a la fecha de finalización entonces es óptimo... y si no.. pues no lo es...estos dos campos pertenecen a un mismo registro en la base de datos...

los comparo con un if como el que mencione anteriormente:

if ($row["feinicio" ]<= $row[fefinalizacion])
{
echo "Optimo";
}
else
{
echo "No es optimo";
}

mmm entonces?.. ahora haré la prueba con lo que dice andinistras...

un saludo a todos y gracias..
  #9 (permalink)  
Antiguo 16/11/2004, 16:17
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
no resulta !!!

enloquecere!
  #10 (permalink)  
Antiguo 17/11/2004, 10:03
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
mmm no hay ideas de como puedo solucionar este lio...
  #11 (permalink)  
Antiguo 17/11/2004, 10:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tienes dos opciones:

1) Ya te comenté que si trabajas con fechas deberías usar SQL de Mysql para obtener bajo tu consulta SQL ese grupo de registros que cumplan esa condición. (todo depende para que lo necesites .. )

www.mysql.com
www.mysql-hispano.com


2) si tienes fechas en formato DATE como describes .. para PHP son simples "strings" (cadenas) así que tendrás que convertir tus fechas "de cadenas" a fechas TIMESTAMP para que PHP pueda operar por "n°" y aplicar un "if()" simple pero con fechas trabajadas en formato TIMESTAMP .. Para esto, debes usar las funciones mktiem() y antes haber desglosado tu fecha en sus partes (dias, meses, años ..) usando explode() al caracter que usas de separador "-".

www.php.net/mktime
www.php.net/explode

Un saludo,
  #12 (permalink)  
Antiguo 17/11/2004, 14:09
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
ok, gracias...
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 11:58.