Inicio | Contacto | Instalar Ubuntu | Wallpapers para Linux

PHP: Restar Fechas

1,721 Lecturas

Les dejo una función en PHP que permite restar dos Fechas. Esto puede servir para mostrar la cantidad de días de la publicación de un Artículo, etc.

<?
// 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') );

?>

 

Ejemplo escrito por: Eduardo Tapia

Artículos relacionados que te pueden interesar

Publicado por Lucas | Tags:

3 Comentarios so far

Suscríbete a los comentarios RSS ó haz TrackBack 'PHP: Restar Fechas'.

  1. Jul 31, 2007 a las 3:50 pm

    Monroy dice,

    hola, yo lo q no puedo hacer es como restar por ejemplo la fecha de hoy, asignada a una variable, eso si lo se hacer, lo q no se es como sacar la otra fecha q esta guardada en la base de datos para restarla con la fecha de hoy q se encuentra en una variable?, te lo agradeceria mucho que me ayudaras

  2. Ago 21, 2007 a las 7:32 pm

    Alberto Rocca dice,

    Hola, a ver si puedo ayudarte:

    1ª) conectarse a tu base de datos:

  3. Abr 22, 2008 a las 11:13 am

    Esteban dice,

    Hola, la verdad me sirvió mucho tu script, pero no en la forma que deseaba, porque la base de datos mysql tiene el formato (yyyy-mm-dd), pero me sirvió de base para investigar y adaptar tu código a mi necesidad.

    Monroy, parece que necesitaria esta adaptación, asi que alli va.

    // Fecha en formato yyyy-mm-dd
    function restaFechas($dFecIni, $dFecFin)
    {
    $dFecIni = str_replace(”-”,”",$dFecIni);
    $dFecFin = str_replace(”-”,”",$dFecFin);
    ereg( “([0-9]{4})([0-9]{1,2})([0-9]{1,2})”, $dFecIni, $aFecIni);
    ereg( “([0-9]{4})([0-9]{1,2})([0-9]{1,2})”, $dFecFin, $aFecFin);
    $date1 = mktime(0,0,0,$aFecIni[2], $aFecIni[3], $aFecIni[1]);
    $date2 = mktime(0,0,0,$aFecFin[2], $aFecFin[3], $aFecFin[1]);
    return round(($date2 - $date1) / (60 * 60 * 24));
    }
    $hoy = date(”Y-m-d”); //leo la fecha actual
    $resultado_resta = restaFechas($row6[Fecha_de_Suscripcion],$hoy); //resto la fecha de hoy menos la fecha alamacenada en la base de datos. (En mi caso es para mostrar anuncios por 90 dias)

    echo “Artículo publicado hace “.$resultado_resta.” días.”;

    Espero que les sirva
    Saludos

    Esteban
    Http://www.HacerFortuna.com

Deja un Comentario

Por favor, respeta a los demás usuarios. Tu email no se publicará.

Acerca de

Tuxi es un blog que tiene como objetivo reunir las noticias importantes del mundo de la tecnología y la actualidad en general y contarlas en español. Una comunidad para debatir entre amigos internautas de todo el mundo.