Foros del Web » Programando para Internet » PHP »

comparar dos fechas con php

Estas en el tema de comparar dos fechas con php en el foro de PHP en Foros del Web. Hola!! a ver si alguien puede ayudarme....quiero comparar dos fechas con php, creo k no tiene k ser muy dificil, xro no consigo encontrar la ...
  #1 (permalink)  
Antiguo 18/01/2006, 07:10
vio
 
Fecha de Ingreso: octubre-2005
Mensajes: 48
Antigüedad: 18 años, 6 meses
Puntos: 2
comparar dos fechas con php

Hola!!
a ver si alguien puede ayudarme....quiero comparar dos fechas con php, creo k no tiene k ser muy dificil, xro no consigo encontrar la forma d hacerlo.
alguien m ayuda?

Gracias!!!
  #2 (permalink)  
Antiguo 18/01/2006, 07:17
 
Fecha de Ingreso: enero-2006
Mensajes: 25
Antigüedad: 18 años, 3 meses
Puntos: 0
if(strcmp ($fecha1 , $fecha2 )==0)
{echo "SON IGUALES"}else{echo "NO SON IGUALES" }
__________________
Venloft
"Por que la vida se vive una vez, soy como soy.
no desperdicies el momento"

------------------------
MegaHost Mexico
  #3 (permalink)  
Antiguo 18/01/2006, 07:32
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
tambien esta la funcion checkdate().
  #4 (permalink)  
Antiguo 18/01/2006, 09:57
vio
 
Fecha de Ingreso: octubre-2005
Mensajes: 48
Antigüedad: 18 años, 6 meses
Puntos: 2
Mil gracias!!!!

Gracias por contestar tan rápido y exarme una mano!!
voy a ver si m sale!
  #5 (permalink)  
Antiguo 18/01/2006, 10:11
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 19
Código PHP:
<?php
$dateFrom 
"25-03-2005 14:20:00";
$dateTo date("d-m-Y H:i:s"strtotime('now'));
 
$diffd getDateDifference($dateFrom$dateTo'd');
$diffh getDateDifference($dateFrom$dateTo'h');
$diffm getDateDifference($dateFrom$dateTo'm');
$diffs getDateDifference($dateFrom$dateTo's');
$diffa getDateDifference($dateFrom$dateTo'a');
 
echo 
'Calculating difference between ' $dateFrom ' and ' $dateTo ' <br /><br />';
 
echo 
$diffd ' days.<br />';
echo 
$diffh ' hours.<br />';
echo 
$diffm ' minutes.<br />';
echo 
$diffs ' seconds.<br />';
 
echo 
'<br />In other words, the difference is ' $diffa['days'] . ' days, ' $diffa['hours'] . ' hours, ' $diffa['minutes'] . ' minutes and ' $diffa['seconds'] . ' seconds.<br>';
 
?>
 
Here's the code:
 
<?php
/**
* Calculates the difference for two given dates, and returns the result
* in specified unit.
*
* @param string Initial date (format: [dd-mm-YYYY hh:mm:ss], hh is in 24hrs format)
* @param string Last date (format: [dd-mm-YYYY hh:mm:ss], hh is in 24hrs format)
* @param char 'd' to obtain results as days, 'h' for hours, 'm' for minutes, 's' for seconds, and 'a' to get an indexed array of days, hours, minutes, and seconds
*
* @return mixed The result in the unit specified (float for all cases, except when unit='a', in which case an indexed array), or null if it could not be obtained
*/
function getDateDifference($dateFrom$dateTo$unit 'd')
{
$difference null;
 
$dateFromElements split(' '$dateFrom);
$dateToElements split(' '$dateTo);
 
$dateFromDateElements split('-'$dateFromElements[0]);
$dateFromTimeElements split(':'$dateFromElements[1]);
$dateToDateElements split('-'$dateToElements[0]);
$dateToTimeElements split(':'$dateToElements[1]);
 
// Get unix timestamp for both dates
 
$date1 mktime($dateFromTimeElements[0], $dateFromTimeElements[1], $dateFromTimeElements[2], $dateFromDateElements[1], $dateFromDateElements[0], $dateFromDateElements[2]);
$date2 mktime($dateToTimeElements[0], $dateToTimeElements[1], $dateToTimeElements[2], $dateToDateElements[1], $dateToDateElements[0], $dateToDateElements[2]);
 
if( 
$date1 $date2 )
{
return 
null;
}
 
$diff $date2 $date1;
 
$days 0;
$hours 0;
$minutes 0;
$seconds 0;
 
if (
$diff 86400 <= 0// there are 86,400 seconds in a day
{
$days $diff 86400;
}
 
if(
$diff 86400 0)
{
$rest = ($diff 86400);
$days = ($diff $rest) / 86400;
 
if( 
$rest 3600 )
{
$rest1 = ($rest 3600);
$hours = ($rest $rest1) / 3600;
 
if( 
$rest1 60 )
{
$rest2 = ($rest1 60);
$minutes = ($rest1 $rest2) / 60;
$seconds $rest2;
}
else
{
$minutes $rest1 60;
}
}
else
{
$hours $rest 3600;
}
}
 
switch(
$unit)
{
case 
'd':
case 
'D':
 
$partialDays 0;
 
$partialDays += ($seconds 86400);
$partialDays += ($minutes 1440);
$partialDays += ($hours 24);
 
$difference $days $partialDays;
 
break;
 
case 
'h':
case 
'H':
 
$partialHours 0;
 
$partialHours += ($seconds 3600);
$partialHours += ($minutes 60);
 
$difference $hours + ($days 24) + $partialHours;
 
break;
 
case 
'm':
case 
'M':
 
$partialMinutes 0;
 
$partialMinutes += ($seconds 60);
 
$difference $minutes + ($days 1440) + ($hours 60) + $partialMinutes;
 
break;
 
case 
's':
case 
'S':
 
$difference $seconds + ($days 86400) + ($hours 3600) + ($minutes 60);
 
break;
 
case 
'a':
case 
'A':
 
$difference = array (
"days" => $days,
"hours" => $hours,
"minutes" => $minutes,
"seconds" => $seconds
);
 
break;
}
 
return 
$difference;
}
?>


aca te dejo el link ..
http://ar2.php.net/manual/es/function.mktime.php#51305

saludos
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #6 (permalink)  
Antiguo 18/01/2006, 10:49
vio
 
Fecha de Ingreso: octubre-2005
Mensajes: 48
Antigüedad: 18 años, 6 meses
Puntos: 2
He encontrado un código que hace lo k yo keria, comparar dos fexas, lo dejo aki x si a alguien le vale, a mi m ha servido. Gracias x las otras respuestas!!

Cita:
function compara_fechas($fecha1,$fecha2)
{
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))
list($dia1,$mes1,$año1)=split("/",$fecha1);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha1))
list($dia1,$mes1,$año1)=split("-",$fecha1);
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha2))
list($dia2,$mes2,$año2)=split("/",$fecha2);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha2))
list($dia2,$mes2,$año2)=split("-",$fecha2);
$dif = mktime(0,0,0,$mes1,$dia1,$año1) - mktime(0,0,0, $mes2,$dia2,$año2);
return ($dif);
}
  #7 (permalink)  
Antiguo 18/01/2006, 10:50
vio
 
Fecha de Ingreso: octubre-2005
Mensajes: 48
Antigüedad: 18 años, 6 meses
Puntos: 2
He encontrado un código que hace lo k yo keria, comparar dos fexas, lo dejo aki x si a alguien le vale, a mi m ha servido. Gracias x las otras respuestas!!

Código PHP:
function compara_fechas($fecha1,$fecha2)
{
     if (
preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))
           list(
$dia1,$mes1,$año1)=split("/",$fecha1);
     if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha1))
           list(
$dia1,$mes1,$año1)=split("-",$fecha1);
     if (
preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha2))
           list(
$dia2,$mes2,$año2)=split("/",$fecha2);
     if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha2))
            list(
$dia2,$mes2,$año2)=split("-",$fecha2);
     
$dif mktime(0,0,0,$mes1,$dia1,$año1) - mktime(0,0,0$mes2,$dia2,$año2);
     return (
$dif);                         

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 14:14.