Foros del Web » Programando para Internet » PHP »

Una mas de fechas

Estas en el tema de Una mas de fechas en el foro de PHP en Foros del Web. Hola a todos, cómo van?? Ufff hace rato no posteaba por acá... Mmmm es la primera vez que necesito hacer este tipo de cáculos con ...
  #1 (permalink)  
Antiguo 27/05/2008, 15:11
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Pregunta Una mas de fechas

Hola a todos, cómo van??

Ufff hace rato no posteaba por acá...

Mmmm es la primera vez que necesito hacer este tipo de cáculos con php, he buscado por la web y acá y no encuentro específicamente mi caso.

La idea es restar dos fechas y que el resultado sea el número de meses de ese cáculo:

Código PHP:
$begin="2008-04-12";
$end="2008-07-12";
list(
$ano_uno,$mes_uno,$dia_uno) = explode('-',$begin);
list(
$ano_dos,$mes_dos,$dia_dos) = explode('-',$end);
$tem_unomktime ,00$mes_uno$dia_uno$ano_uno);
$tem_dosmktime ,00$mes_dos$dia_dos$ano_dos);
$res=$tem_uno-$tem_dos
Si tomamos las fechas de mi ejemplo, el resultado de toda la operación debería ser tres(3), osea que la diferencia de meses entre esas dos fechas es de tres meses.

Si se fijan llegué en mi proceso hasta la resta de las fechas, pero de ahí para allá no se que mas hacer Además no sé si lo que estoy haciendo, lo estoy haciendo bien.

Gracias de antemano
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com

Última edición por Carxl; 27/05/2008 a las 16:16
  #2 (permalink)  
Antiguo 27/05/2008, 16:16
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años
Puntos: 5
Respuesta: Una mas de fechas

Hi !

Esto lo encontré en un BLOG - www(dot)tuxi(dot)com(dot)ar -, te lo pego aqui:
Código PHP:
<?
// Fecha en formato dd/mm/yyyy o dd-mm-yyyy retorna la diferencia en dias

function restaFechas($dFecIni$dFecFin)
{
    
$dFecIni str_replace("-","",$dFecIni);
    
$dFecIni str_replace("/","",$dFecIni);
    
$dFecFin str_replace("-","",$dFecFin);
    
$dFecFin str_replace("/","",$dFecFin);

    
ereg"([0-9]{1,2})([0-9]{1,2})([0-9]{2,4})"$dFecIni$aFecIni);
    
ereg"([0-9]{1,2})([0-9]{1,2})([0-9]{2,4})"$dFecFin$aFecFin);

    
$date1 mktime(0,0,0,$aFecIni[2], $aFecIni[1], $aFecIni[3]);
    
$date2 mktime(0,0,0,$aFecFin[2], $aFecFin[1], $aFecFin[3]);

    return 
round(($date2 $date1) / (60 60 24));
}

// Ej.: con fechas fijas
$resultado_resta restaFechas('01-05-2007','04-05-2007');
echo 
"Artículo publicado hace ".$resultado_resta." días.";

// Podemos reemplazar la fecha inicial fija, por las que tengamos en el registro del Artículo de la base de datos
// Ej.: $resultado_resta = restaFechas( $fecha_articulo , date('d-m-Y') );
?>
Verás que el resultado esta dado en dias, pero puedes hacer un paso anterior y dividirlo entre 30 o 31 y de esa forma obtener el numero de meses transcurridos.

Suerte !

-ByE-
  #3 (permalink)  
Antiguo 27/05/2008, 19:59
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Una mas de fechas

Hola Proguri, cómo vas??

Realmente me sirvió tu respuesta ... muchas gracias hombre

En esta línea se agrega lo siguiente:

Código PHP:
    return round(($date2 $date1) / (30 60 60 24)); 
Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 20:25.