Foros del Web » Programando para Internet » PHP »

Comparar dos fechas en dos variables

Estas en el tema de Comparar dos fechas en dos variables en el foro de PHP en Foros del Web. Buenas, tengo dos variables que contiene cada una una fecha en formato dd/mm/yyyy y necesito comprarlas para saber si una fecha es mayor que la ...
  #1 (permalink)  
Antiguo 22/04/2013, 08:44
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 5 meses
Puntos: 3
Comparar dos fechas en dos variables

Buenas, tengo dos variables que contiene cada una una fecha en formato dd/mm/yyyy y necesito comprarlas para saber si una fecha es mayor que la otra, osea si es un dia mas, un mes mas, un año mas ..etc


Alguien sabe como lo puedo hacer.

Hasta ahora lo que he conseguido es que con strcmp me diga si son iguales o distintas, pero no se si es mayor o menos....


Gracias de antemano.
  #2 (permalink)  
Antiguo 22/04/2013, 08:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Comparar dos fechas en dos variables

Puedes usar strtotime() y compararlas de forma numérica, o si tienes PHP5.3+ usar la clase DateTime.

Saludos.
  #3 (permalink)  
Antiguo 22/04/2013, 09:11
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Comparar dos fechas en dos variables

Gracias, algun ejemplo de la sintaxis ya seria mucho pedir? jeje

Es que lo estoy probando y no se porque no me va... :S
  #4 (permalink)  
Antiguo 22/04/2013, 09:14
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Comparar dos fechas en dos variables

Algo así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fecha1 = '04-01-2014 13:00:00';
  4. $fecha2 = '02-06-2013 19:34:59';
  5.  
  6. if (strtotime($fecha1) > strtotime($fecha2)) {
  7.     echo 'Fecha1 es mayor que Fecha2';
  8. }

Así tambien puede ser, si tienes PHP 5.3+ como te dijeron arriba:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $dt1 = DateTime::createFromFormat('d/m/Y', '20/03/2013');
  4. $dt2 = DateTime::createFromFormat('d/m/Y', '20/03/2013');
  5.  
  6. if ($dt1 >= $dt2) {
  7.     echo 'La fecha 1 es mayor o igual a la fecha 2';
  8. } else {
  9.     echo 'La fecha 2 es mayor a la fecha 1';
  10. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 22/04/2013 a las 09:22
  #5 (permalink)  
Antiguo 22/04/2013, 10:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Comparar dos fechas en dos variables

Vale, pero no me termina de funcionar, os copio el codigo a ver que puedo tener mal.



Código PHP:
$f_inicio date('d-m-Y'strtotime($arrV["start_hs"]));
$f_findate ('d-m-Y'strtotime($arrV["end_hs"]));
                
$entrada=date('d-m-Y'strtotime($_GET['course_std']));


if (
strtotime($entrada) > strtotime($f_inicio)) 
                {
                    echo 
'Mayor';
                }
                else 
                {
                    echo 
'No es mayor';
                } 
me dice en todo momento que es mayor aunque tenga una fecha que me llega por GET de un mes antes.
  #6 (permalink)  
Antiguo 22/04/2013, 10:08
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Comparar dos fechas en dos variables

Debes pasar un formato válido a strtotime, por ejemplo: día-mes-año, no es válido día/mes/año, eso te da fechas como 31-12-1969 y por eso siempre es mayor.

Te sirve el segundo ejemplo que te dejé con PHP 5.3+:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $dt1 = DateTime::createFromFormat('d/m/Y', '20/03/2013');
  4. $dt2 = DateTime::createFromFormat('d/m/Y', '20/03/2013');
  5.  
  6. if ($dt1 >= $dt2) {
  7.     echo 'La fecha 1 es mayor o igual a la fecha 2';
  8. } else {
  9.     echo 'La fecha 2 es mayor a la fecha 1';
  10. }

o usa explode, str_replace etc para organizar esa fecha en un formato válido.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: variables
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 00:14.