PHP - problemas para comparar fecha y hora existe alguna funcion que compara una fecha u hora?

   
Vista:

problemas para comparar fecha y hora existe alguna funcion que compara una fecha u hora?

Publicado por martin (46 intervenciones) el 13/09/2012 14:09:54
Amigos de la web:

Me gustaria compara dos fechas de la siguiente manera:

$fecha1 = 01/09/2012;
$fecha2 = 07/09/2012;

Existe alguna funcion que me determine si la fecha 1 es

1) menor que la fecha 2

if( $fecha1 < $fecha2 )
{
........
}

2) mayor que la fecha 2

if( $fecha1 > $fecha2 )
{
........
}

3) igual que la fecha 2

if( $fecha1 == $fecha2 )
{
........
}

De igual manera con la hora

$hora1 = 11:32:52;
$hora2 = 16:43:01;

En donde deseo determinar si la hora 1 es

1) menor que la hora2

if( $hora1 < $hora2 )
{
........
}

2) mayor que la hora2

if( $hora1 > $hora2 )
{
........
}

3)igual que la hora2

if( $hora1 == $hora2 )
{
........
}


Amigos Existe alguna función que compare fechas u hora por separado?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

problemas para comparar fecha y hora existe alguna funcion que compara una fecha u hora?

Publicado por xve (5523 intervenciones) el 13/09/2012 14:32:41
Hola Martin, yo para ello, lo que hago es pasar la fecha a formato ingles (yyyy-mm-dd) y luego coger su timestamp, de esta manera, estas siempre comparando enteros....

Aqui tienes una función para convertir cualquier fecha española a inglesa:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
 * Funcion que convierte una fecha en formato dd/mm/yyyy en formato ingles yyyy/mm/dd
 * Puede recibir la fecha:
 *	dd/mm/yyyy
 *	d/m/yyyy
 *	d/mm/yy
 */
public function convertDateToEnglish($date)
{
	if($this->validateDateEs($date))
	{
		$values=preg_split('/(\/|-)/',$date);
		$values[0]=(strlen($values[0])==2?$values[0]:"0".$values[0]);
		$values[1]=(strlen($values[1])==2?$values[1]:"0".$values[1]);
		$values[2]=(strlen($values[2])==4?$values[2]:substr(date("Y"),0,2).$values[4]);
		return $values[2].$values[1].$values[0];
	}
	return "";
}
 
$fecha1 = convertDateToEnglish("01/09/2012");
$fecha2 = convertDateToEnglish("07/09/2012");


Una vez la tienes las fechas en ingles, puedes tomar su timestamp y realizar las comparaciones que desees:
1
2
3
timestampFecha1=strtotime("fecha1");
timestampFecha2=strtotime("fecha2");
echo timestampFecha1." # ".timestampFecha2;

El echo te devolverá algo así:
1346450400 # 1346968800

Ahora ya puedes hacer las comparaciones que desees.

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas para comparar fecha y hora existe alguna funcion que compara una fecha u hora?

Publicado por martin (46 intervenciones) el 13/09/2012 14:54:54
Me va a servir solamente una pregunta

timestampFecha1 es una variable verad? si es una variable deberia ir asi (con el simbolo del dolar):

$timestampFecha1 = strtotime("fecha1");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

problemas para comparar fecha y hora existe alguna funcion que compara una fecha u hora?

Publicado por xve (5523 intervenciones) el 13/09/2012 17:16:40
Hola Martin, si si, tienes toda la razón, se me ha olvidado!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas para comparar fecha y hora existe alguna funcion que compara una fecha u hora?

Publicado por martin (46 intervenciones) el 13/09/2012 21:38:47
y con el tema de la hora existe alguna funcion que compare la hora?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

problemas para comparar fecha y hora existe alguna funcion que compara una fecha u hora?

Publicado por xve (5523 intervenciones) el 14/09/2012 08:49:57
Para trabajar con horas, lo que yo hago es pasarlo todo a segundos y luego trabajar... algo como ves aquí: http://www.lawebdelprogramador.com/codigo/PHP/73-Restar_dos_horas.html

Si además de la hora le juntas a una fecha dada, sumas los valores (timestamp), ya que todos son segundos.

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar