Hola de nuevo,
ya he encontrado una solución. He hecho un fichero que contiene dos ejemplos,que luego mostraré por si os sirve. Esta brevemente explicado.
Debido a que yo las fechas las pongo con el siguiente formato: dd/mm/yyyy, he creado una serie de funciones para transformar el formato, en el siguiente fichero
(fechas.php): Código PHP:
<?php
//Combierte fecha de MySql(Año-Mes-Dia) a normal(Dia-Mes-Año)
function cambiaf_a_normal($fecha)
{
ereg( "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $fecha, $mifecha);
$lafecha=$mifecha[3]."/".$mifecha[2]."/".$mifecha[1];
return $lafecha;
}
//Convierte fecha de normal(Dia-Mes-Año) a MySql(Año-Mes-Dia)
function cambiaf_a_mysql($fecha)
{
ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fecha, $mifecha);
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
return $lafecha;
}
//Convierte fecha con formato dd/mm/yyyy en dd-mm-yyyy, para poder utilizar la función strtotime y comparar fechas
function cambiaf_a_otrofor($fecha)
{
ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fecha, $mifecha);
$lafecha=$mifecha[1]."-".$mifecha[2]."-".$mifecha[3];
return $lafecha;
}
?>
Aquí los dos ejemplos en un fichero:
Código PHP:
<?php
require("Negocio/fechas.php");
/*Fecha actual con la función getdate() */
echo"Comparar dos fechas 1</br>";
$hoy=getdate();
echo"Fecha de hoy: </br>";
echo"Dia: ".$hoy["mday"]."</br>";
echo"Mes: ".$hoy["mon"]."</br>";
echo"Anio: ".$hoy["year"]."</br>";
echo"</br>";
//Con este formato no hace falta cambio
$fecha=getdate(strtotime("17-04-2008"));
echo"Fecha: </br>";
echo"Dia: ".$fecha["mday"]."</br>";
echo"Mes: ".$fecha["mon"]."</br>";
echo"Anio: ".$fecha["year"]."</br>";
echo"</br>";
//Transformarlas con mktime()
$hoy2=mktime(0,0,0,$hoy["mon"],$hoy["mday"],$hoy["year"]);
$fecha2=mktime(0,0,0,$fecha["mday"],$fecha["mon"],$fecha["year"]);
if($hoy2<=$fecha2)
{
echo"Hoy: ".$hoy["mday"]." ".$hoy["mon"]." ".$hoy["year"]." es menor o igual que"
.$fecha["mday"]." ".$fecha["mon"]." ".$fecha["year"]."</br>";
}
else
{
echo"Hoy: ".$hoy["mday"]." ".$hoy["mon"]." ".$hoy["year"]." es mayor que"
.$fecha["mday"]." ".$fecha["mon"]." ".$fecha["year"]."</br>";
}
echo"</br>";
echo"Comparar dos fechas 2</br>";
/*Fecha con formato dd/mm/yyyy la paso a formato dd-mm-yyyy con la función cambiaf_a_otrofor(), con strtotime la transformo en tiestamp
con getdate() obtengo el dia,mes y año, para luego utilizar la función mktime() y poder comparar fechas*/
$fecha22=getdate(strtotime(cambiaf_a_otrofor("21/07/2007")));
echo"Fecha de hoy: </br>";
echo"Dia: ".$fecha22["mday"]."</br>";
echo"Mes: ".$fecha22["mon"]."</br>";
echo"Anio: ".$fecha22["year"]."</br>";
echo"</br>";
//Con este formato no hace falta cambio
$fecha33=getdate(strtotime(cambiaf_a_otrofor("01/02/2008")));
echo"Fecha: </br>";
echo"Dia: ".$fecha33["mday"]."</br>";
echo"Mes: ".$fecha33["mon"]."</br>";
echo"Anio: ".$fecha33["year"]."</br>";
echo"</br>";
//Transformarlas con mktime()
$fechaRes22=mktime(0,0,0,$fecha22["mon"],$fecha22["mday"],$fecha22["year"]);
$fechaRes33=mktime(0,0,0,$fecha33["mday"],$fecha33["mon"],$fecha33["year"]);
if($fechaRes22<=$fechaRes33)
{
echo"Fecha: ".$fecha22["mday"]." ".$fecha22["mon"]." ".$fecha22["year"]." es menor o igual que "
.$fecha33["mday"]." ".$fecha33["mon"]." ".$fecha33["year"]."</br>";
}
else
{
echo"Fecha: ".$fecha22["mday"]." ".$fecha22["mon"]." ".$fecha22["year"]." es mayor que "
.$fecha33["mday"]." ".$fecha33["mon"]." ".$fecha33["year"]."</br>";
}
?>
Espero que os sirva, y si encontrais algún fallo, por favor decirmelo.