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 el

¡¡AVISO!! Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

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.