· PHP  · Lectura en 3 min

Tutorial PHP Date

Aprende a utilizar la funcion PHP date() con ejemplos y aprende a convertir un string en una fecha con PHP

Aprende a utilizar la funcion PHP date() con ejemplos y aprende a convertir un string en una fecha con PHP

En cualquier lenguaje de programación el tratamiento de fechas conlleva quebraderos de cabeza, algo con lo que tratamos a diario siempre acaba dando problemas…

En este tutorial te voy a enseñar a cómo poner una fecha en PHP con la función Date, no te puedo asegurar que sea un camino fácil, pero te lo intentaré hacer lo más ameno posible.

¿Qué hace PHP Date?

Según php.net la función de PHP hace lo siguiente: “Devuelve una cadena formateada según el formato dado usando el parámetro de tipo integer timestamp dado o el momento actual si no se da una marca de tiempo. En otras palabras, timestamp es opcional y por defecto es el valor de time()“.

Bueno, cómo seguramente te has quedado igual con esa “explicación”, básicamente lo que hace la función Date en PHP es devolverte la fecha en el formato que le indiques y te la devuelve como un string.

Usos más comunes de PHP Date

En php.net tienes la tabla con todos los formatos disponibles, por lo que no me voy a parar a comentarlos todos, simplemente te comentaré cuáles son los más útiles para hispanoparlantes.

Antes de empezar a trabajar con Date debes de definir en que franja horaria te encuentras, básicamente tienes que buscar tu país en este enlace, en el caso de España sería “Europe/Madrid”, por lo que definiré la franja horaria escribiendo date_default_timezone_set(‘Europe/Madrid’), también establecere que el idioma es el Español de España con “setlocale(LC_ALL, ‘es-ES’)“.

Imprimir el día de la semana

<?php 
    setlocale(LC_ALL, 'es-ES');
    date_default_timezone_set('Europe/Madrid');

    echo date("l");
?>

Imprimir la fecha completa con el día de la semana

<?php 
    setlocale(LC_ALL, 'es-ES');
    date_default_timezone_set('Europe/Madrid');

    echo date('l jS \of F Y h:i:s A');
?>

Imprimir la fecha en formato Español

<?php 
    setlocale(LC_ALL, 'es-ES');
    date_default_timezone_set('Europe/Madrid');

    echo date("d/m/Y");   
?>

Imprimir la fecha en formato Americano

<?php 
    setlocale(LC_ALL, 'es-ES');
    date_default_timezone_set('Europe/Madrid');

    echo date("Y/m/d");   
?>

Comparar dos fechas en PHP

Para acabar el tutorial vamos a solucionar uno de los problemas más frecuentes con las fechas, las condiciones. Por ejemplo, si quisiéramos comprobar que una fecha es más grande que otra, nuestro primer instinto sería hacerlo así:

<?php 
    setlocale(LC_ALL, 'es-ES');
    date_default_timezone_set('Europe/Madrid');

    $date1 = '2022-01-01';
    $date2 = '2021-01-01';

    if($date1 > $date2){
        echo "$date1 es más actual que $date2";
    }else{
        echo "$date2 es más actual que $date1";
    }
?>

Este código en la mayoría de ocasiones te funcionará, sin embargo, realmente lo que estás comparando son dos strings, por lo que si el formato de la fecha no fuese americano esté código ya no funcionaría, por lo que lo más recomendable sería antes de realizar la comparación es convertir las variables a date.

<?php 
    setlocale(LC_ALL, 'es-ES');
    date_default_timezone_set('Europe/Madrid');

    $date1 = '01/01/2022';
    $date2 = '01/01/2021';

    $date1 = DateTime::createFromFormat("d/m/Y", $date1);
    $date2 = DateTime::createFromFormat("d/m/Y", $date2);

    if($date1 > $date2){
        echo $date1->format('d/m/Y') .' es más actual que ' . $date2->format('d/m/Y');
    }else{
        echo $date1->format('d/m/Y') . ' es más actual que ' . $date1->format('d/m/Y');
    }
?>
    Compartir
    Volver al blog

    Artículos relacionados

    Ver todos los artículos »