Inicio Apuntes FPApuntes DAW Ejercicio Básico 26 PHP: Calcula la diferencia entre dos fechas, usando la aproximación a objetos
php logo

Ejercicio Básico 26 PHP: Calcula la diferencia entre dos fechas, usando la aproximación a objetos

por entreunosyceros
Publicado el: Última actualización:

Bueno, en el post que voy a dejar aquí hoy, voy a intentar realizar un ejercicio sencillo. En el vamos a empezar a ver algunas cosas relacionadas con la programación orientada a objetos en PHP para calcular la diferencia entre dos fechas.diferencia entre dos fechas con PHP

El ejercicio trata sobre realizar un formulario. Con el vamos a calcular la diferencia entre dos fechas, usando la aproximación a objetos de PHP. Esta aproximación se hará con Datetime y diff.

Bueno, explicado el ejercicio … vamos al tema.

Calcula la diferencia entre dos fechas, usando la aproximación a objetos

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Práctica 26</title>
        </head>
        <body>
            <?php
            if (isset($_POST['Enviar'])) {
                //Guardamos las los datos introducidos por el usuario dentro de variables
                $dia = intval($_POST['dia']);
                $mes = intval($_POST['mes']);
                $anho = intval($_POST['anho']);
               
                //Comprobamos si las variables están vacías.
                if (empty($dia) || empty($mes) || empty($anho)) {
                   
                    echo "ERROR!! los datos introducidos son erroneos o algún campo está en blanco. ";
                    echo " <a href='index.php' title='Volver'>Volver</a>";
                   
                } else {
     
                    //Comprobamos si el número que el usuario ha ingresado un número
                    //menor que 31 en los días y que el número ingresado como mes es menor
                    //que doce.
                    if ($dia > 31 || $mes > 12) {
                       
                        echo "ERROR!! en los datos de la fecha proporcionada.";
                        echo " <a href='index.php' title='Volver'>Volver</a>";
                       
                    } else {
                        //Guardamos las fechas en variables.
                        //$date1 guarda la fecha introducida y $date2 guarda la fecha de hoy.
                        $date1 = new DateTime($anho . "-" . $mes . "-" . $dia);
                        $date2 = new DateTime('NOW');
                       
                        //Comprobamos que la fecha ingresada no es mayor que la fecha actual
                        if ($date2 < $date1) {
                           
                            echo "ERROR!! la fecha que has escrito tiene que ser anterior a la fecha de hoy.";
                            echo " <a href='index.php' title='Volver'>Volver</a>";
                           
                        } else {
                           
                            //Calcula el valor absoluto de la diferencia de entre las fechas
                            $diff = $date2->diff($date1, true);
                            echo "Han transcurrido " . $diff->format('%a días') . " desde la fecha que has escrito y el día de hoy.";
                            echo " <a href='index.php' title='Volver'>Volver</a>";
                        }
                    }
                }
            } else {
                ?>
     
                <!--Formulario de envío-->
                <form action="index.php" method="post" name="form" id="form"><!--Inicio formulario-->
     
                    <table align="center" border="1" >  
     
                        <tr><!--línea texto-->
                            <td align="center" colspan="2" bgcolor="#f0f0f0">
                                <h5>
                                    Escribe una fecha a comparar con el día de hoy
                                </h5>                    
                            </td>
                        </tr><!--Fin de la línea texto-->
     
                        <tr><!--Línea fecha-->
                            <td bgcolor="#f0f0f0">Fecha: </td>
                            <td align="center">
                                Día<input type="text" name="dia" size="2" maxlength="2">
                                Mes<input type="text" name="mes" size="2" maxlength="2">
                                Año<input type="text" name="anho" size="4" maxlength="4">
                            </td>
                        </tr><!--Fin de la línea fecha-->
     
                        <tr><!--línea de botones-->
                            <td align="center" bgcolor="#f0f0f0" colspan="2">
                                <input type="submit" value="enviar" name="Enviar" title="Enviar" />
                                 || 
                                <input type="reset" value="borrar" name="borrar" title="borrar" />
                            </td>
                        </tr><!--Fin línea de botones-->
     
                    </table><!--FIN de la tabla-->
     
                </form><!--Fin del formulario-->
                <?php
            } //cerramos el else para evitar que se imprima en el resultado en la misma
            //página que el formulario.
            ?>
        </body>
    </html>


 


También te puede interesar ...

2 Comentarios

Agnes 6 mayo, 2016 - 2:29 AM

Muchas gracias, el ejemplo me sirvió muchísimo, saludos desde Argentina :)

Responder
sapoclay 6 mayo, 2016 - 12:46 PM

Me alegra que te haya sido útil :)

Responder

Deja tu comentario

* Al utilizar este formulario, acepta que este sitio web almacene y maneje sus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.