Foros del Web » Programando para Internet » PHP »

Comparar Fechas

Estas en el tema de Comparar Fechas en el foro de PHP en Foros del Web. Hola Maestr@s tengo una pregunta para que si alguien puede me la conteste: ¿Como puedo comparar 2 fechas? Es decir, si en una base de ...
  #1 (permalink)  
Antiguo 04/08/2002, 18:40
Avatar de kco
kco
 
Fecha de Ingreso: septiembre-2001
Mensajes: 249
Antigüedad: 22 años, 5 meses
Puntos: 0
Comparar Fechas

Hola Maestr@s tengo una pregunta para que si alguien puede me la conteste:

¿Como puedo comparar 2 fechas?
Es decir, si en una base de datos tengo la siguiente fecha 20/10/2002 (dd/mm/aaaa) como le puedo decir que si HOY es anterior (20/10/2002) a esta fecha haga una cosa y si no haga otra.

Hay alguna función que compruebe esto y si no como lo podria hacer.

Muchas gracias y un saludo de un PHPero+
kco
:) ;) :P
  #2 (permalink)  
Antiguo 04/08/2002, 20:09
 
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 193
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Comparar Fechas

quizas esto te sriva, diem si no lo entidnes o no funciona:

<?
$fecha1 = "24/04/2002";
$fecha2 = "23/04/2002";

$f1= explode("/",$fecha1);
$dia1 = $f1[0];
$mes1 = $f1[1];
$ano1 = $f1[2];

$f2= explode("/",$fecha2);
$dia2 = $f2[0];
$mes2 = $f2[1];
$ano2 = $f2[2];

$time1 = mktime (0,0,0,$mes1,$dia1,$ano1);
$time2 = mktime (0,0,0,$mes2,$dia2,$ano2);

if($time1<$time2){
echo"La primer fecha ($fecha1) es menor a la segunda ($fecha2)";
}else{
echo"La primer fecha ($fecha1) es mayor a la segunda ($fecha2)";
}
?>

saludos. Choly.
  #3 (permalink)  
Antiguo 04/08/2002, 20:22
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Comparar Fechas

No se, pero otra manera... asi lo hace MySQL
Le das un orden jerarquico a las partes de la fecha (año, mes, etc), para poder compararlas como si fueran numeros.
en MySQL el campo de tipo timestamp(10) guarda las fechas asi:
AAMMDDHHmm
Para hoy seria asi: 0208042215
Si pones las fechas en ese formato podes entonces compararlas como numeros normales.
Por lo demas la opcion de pasarlas a timestamp unix no es mala pero bueno un poco mas complicada.
Saludos


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #4 (permalink)  
Antiguo 04/08/2002, 20:35
 
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 193
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Comparar Fechas

el tema es qu quizas el ya tiene toda una base de datos cargado con las fechas en formato dd/mm/yyyy y no puede pasar todo a timestamp de mysql, ademas el no necesita ordenarlas, sino que dependiendo de si una fecha es mayor o menor a otra que se ejecute cirto procedimiento, o eso es lo que entendi, saludos, choly.
  #5 (permalink)  
Antiguo 04/08/2002, 22:27
Avatar de kco
kco
 
Fecha de Ingreso: septiembre-2001
Mensajes: 249
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Comparar Fechas

Muchas gracias cholyberreteaga &amp; gomo

Justamente era lo q entendiste cholyberreteaga

Lo q estoy haciendo es un programilla en el que se dan de alta archivos con fecha de caducidad y lo q quiero es q cuando haya caducado pase de la bbdd principal a una historica y creo q con lo q me has explicado cholyberreteaga no tendre q tener muchos problemas.

Pero tengo otra pregunta:
¿Sabeis como se puede automatizar un script para q se ejecute una vez al dia?
Es decir cuando empieze un dia se ejecute un script que haga lo que yo quiera

Muchas gracias otra vez y un abrazo de un PHPero+
kco
:) ;) :P
Se nota q soy virgen trabajado con fechas??
  #6 (permalink)  
Antiguo 05/08/2002, 09:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Re: Comparar Fechas

jeje yo sigo siendo el pesao de turno ...

Pero les recuerdo que Mysql .. dispone de un buen numero de funciones para realizar consultas de este tipo .. como .. comparacion de fechas y demas funciones ...

Usar las funciones de Mysql .. agiliza las consultas y optimiza los recursos del servidor .. ya q el trabajo se hace de una vez en Mysql . y no a medias entre Mysql y PHP ...

Tal vez para este caso .. esa conversion a timestamp sobre (y es mas &quot;entendible&quot; ...) pero .. por si desean aqui les dejo el link par que lo miren (el manual de mysql, capitulo funciones de tratamiento de fechas):

<a href='ir.asp?http://www.mysql.com' target='_blank'>www.mysql.com...</a>
(les dejo el principal .. q algo estan cambiando en Mysql y no va el /doc)

Un saludo,
  #7 (permalink)  
Antiguo 05/08/2002, 12:55
 
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 193
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Comparar Fechas

buen post cluster y con respcto a la automaizacion de un script para q se autoejecute tengo entendido que no es posible, quizas si dispones de tu propio servidor algo puedas hacer pero no tengo idea, saludos!
choly.

<iframe target="_top" src="http://genteloca.com/firma.htm" width="100%" height="70" border="0" framespacing="0" border="0" frameborder="0"> </iframe>
  #8 (permalink)  
Antiguo 05/08/2002, 15:41
 
Fecha de Ingreso: noviembre-2001
Ubicación: Quito - Ecuador
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: Comparar Fechas

Para que se ejecute un archivo cada dia, en el servidor donde tengas tus archivos debes configurar la herramienta correspondiente, si tu server es linux debes hacer lo siguiente:

-Para correr scripts php(si esta como modulo de apache) como tareas desde el cron:

Crear un archivo de texto o editar el archivo /etc/crontab, puede ser con &quot;vi&quot;

añadir la linea :
59 23 * * * lynx -dump http://www.somedomain.com/cron.php &gt;/dev/null

Desde el shell ejecutar: /etc/crontab crontab

Para ver si se añadio la tarea ejecutar :
/etc/crontab -l

espero sea claro el ejemplo, esto es si tu server es linux.

suerte


EduH
  #9 (permalink)  
Antiguo 05/08/2002, 21:01
Avatar de kco
kco
 
Fecha de Ingreso: septiembre-2001
Mensajes: 249
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: Comparar Fechas

Muchas gracias a todos, sois buena buena gente.

Un abrazo de este PHPero+
kco
:) ;) :P
  #10 (permalink)  
Antiguo 16/07/2003, 02:50
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 20 años, 11 meses
Puntos: 1
hola me gustaria saber para que sirven las lineas primera y ultima del script de arriba.

Muchas gracias
  #11 (permalink)  
Antiguo 16/07/2003, 08:54
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 20 años, 11 meses
Puntos: 0
Hola, tengo algo paresido... pasa que en mysql tengo un campo del tipo 2003-07-16 12:15:46 y quisiera compararlo con la fecha actual pero sin la hora...

Lo postie pero se alejo bastante y no me funciono lo que me recomendaron...

Lo que busco es contar las publicaciones del dia de hoy... sin importar la hora...

$fecha = date("d-m-Y");

$poemashoy = @mysql_query("SELECT COUNT(*) FROM tabla_poemas WHERE DATE_FORMAT('%d-%m-%Y',time) = '$fecha' ");
$poemashoy = mysql_result($poemashoy,0);


Me devuelve "0"... me equivoco en algo?

Última edición por Nukelino; 16/07/2003 a las 09:01
  #12 (permalink)  
Antiguo 27/04/2004, 03:55
 
Fecha de Ingreso: diciembre-2003
Mensajes: 32
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Re: Comparar Fechas

Cita:
Mensaje Original por cholyberreteaga
quizas esto te sriva, diem si no lo entidnes o no funciona:

&lt;?
$fecha1 = &quot;24/04/2002&quot;;
$fecha2 = &quot;23/04/2002&quot;;

$f1= explode(&quot;/&quot;,$fecha1);
$dia1 = $f1[0];
$mes1 = $f1[1];
$ano1 = $f1[2];

$f2= explode(&quot;/&quot;,$fecha2);
$dia2 = $f2[0];
$mes2 = $f2[1];
$ano2 = $f2[2];

$time1 = mktime (0,0,0,$mes1,$dia1,$ano1);
$time2 = mktime (0,0,0,$mes2,$dia2,$ano2);

if($time1&lt;$time2){
echo&quot;La primer fecha ($fecha1) es menor a la segunda ($fecha2)&quot;;
}else{
echo&quot;La primer fecha ($fecha1) es mayor a la segunda ($fecha2)&quot;;
}
?&gt;

saludos. Choly.
HOLA, ha mi me gustaria saber como poder hacer esto con un while, mientras la fecha1 sea distinta a fecha2 que se vaya incrementando la fecha1, algo asi:

Código PHP:
        
$fentrada
=mktime(0,0,0,$mes1,$dia1,$ano1);          
$fsalida=mktime(0,0,0,$mes2,$dia2,$ano2);      
while (
$fentrada != $fsalida){  
  
$dia1=$dia1++;    
  
$fentrada=mktime(0,0,0,$mes1,$dia1,$ano1);      
  
$fecha=date('Y/m/d'mktime(0,0,0,$mes1,$dia1,$ano1)); } 
pero parece que el while carga demasiado al servidor y.. no responde :(

Última edición por darthvid; 27/04/2004 a las 04:31
  #13 (permalink)  
Antiguo 27/04/2004, 08:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
darthvid

Si trabajas con Base de datos .. lo ideal es que resuelvas el problema puntual desde SQL con las funciones de tu BD própia para el tema de "fechas" ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 16:06.