Curso de ACF Básico – #19 – Campo Selector de fecha

El campo del tipo Selector de fecha de ACF, nos muestra un cuadro de diálogo para que podamos seleccionar una fecha determinada.

Campo Selector de fecha de ACF

¿Cuándo utilizar este campo?

Básicamente cuando necesitamos «trabajar con una fecha», entiéndase calcular la mayoría de edad de una persona, o cuántos días faltan para un evento o la caducidad de un producto.

También es útil para asegurarnos que todas las fechas que se carguen en el administrador de WordPress tengan el mismo formato.

Videotutorial

En el videotutorial voy a explicarte cómo configurar y mostrar el campo en el Frontend, como así también hacer cálculos con los valores guardados.

Interfaz gráfica

Configuraciones

  • Formato de Visualización: Será el formato con el que visualizaremos la fecha en el administrador de WordPress. Nos brinda unas opciones predefinidas pero también podemos configurar una personalizada utilizando los parámetros de la función date de PHP.
  • Formato de retorno: Será el formato con el que visualizaremos la fecha en el frontend a través de las funciones get_field() o the_field(). Nos brinda unas opciones predefinidas pero también podemos configurar una personalizada utilizando los parámetros de la función date de PHP.
  • La semana comienza: Nos permite seleccionar a partir de qué día comienza la semana en el calendario.

Utilización en Frontend

La API de ACF devolverá la fecha con el formato configurado en el atributo «Formato de retorno».

De todas formas podemos crear una nueva variable DateTime para hacer diferentes cálculos con la fecha obtenida de la base de datos.

<div class="entry-content">

    <p><b>Teléfono</b>: <?php the_field('contacto_telefono'); ?></p>
    <p><b>Lugar de nacimiento</b>: <?php the_field('contacto_pais'); ?></p>
    <?php
    // Obtengo el campo fecha sin el formato de ACF.
    $fecnac = get_field('contacto_fecnac', false, false);

    // Creo una nueva fecha a partir del campo de ACF.
    $fecnac = new DateTime( $fecnac );

    // Creo una variable con la fecha y hora de hoy.
    $hoy = new DateTime();

    // Calculo la diferencia entre las dos fechas.
    $diff = $hoy->diff( $fecnac );
    ?>

    <?php 
    // A continuación muestro la fecha con el formato DD/MM/YYYY 
    // Más información sobre el formato de fechas en => https://www.php.net/manual/es/function.date.php
    ?>
    <p><b>Fecha de nacimiento</b>: <?php echo $fecnac->format( 'd/m/Y' ); ?></p>

    <?php
    // Realizada la diferencia solo me resta preguntar por la cantiad de años
    // Si es mayor igual a 18, es mayor de edad.
    ?>
    <p><b>¿Es mayor de edad?</b>: <?php echo ( $diff->y >= 18 ) ? "SI" : "NO"; ?> </p>

</div><!-- .entry-content -->

Estos son otros ejemplos que podemos aplicar con el format de fecha, aunque los resultados son meramente en inglés:

<?php 

// Otros ejemplos de formatos de fecha.
$hoy = new DateTime();
echo $hoy->format( 'd/m/Y' );        // Devuelve => 05/07/2019
echo $hoy->format("F j, Y, g:i a");  // Devuelve => July 5, 2019, 12:25 am
echo $hoy->format("H:i:s");          // Devuelve => 00:26:37
echo $hoy->format("Y-m-d H:i:s");    // Devuelve => 2019-07-05 00:27:02 (el formato DATETIME de MySQL)

Formato de fecha en castellano

Tal como lo aclara la documentación del método format de DateTime, esta función no admite localización, siempre devuelve los valores en inglés.

«This method does not use locales. All output is in English.»

https://www.php.net/manual/en/datetime.format.php#refsect1-datetime.format-notes

Si necesitamos escribir los valores en castellano, para ello podemos utilizar en su lugar la función strftime() como muestro a continuación.

<?php
// Defino la localización.
setlocale(LC_ALL,"es_ES");

// Obtengo el campo fecha de ACF y lo convierto en un DateTime.
$fecnac = get_field('contacto_fecnac', false, false);
$fecnac = new DateTime( $fecnac );

// Lo muestro con otros formatos de fecha.
echo strftime( '%A, %d de %B de %G', $fecnac->getTimestamp() ); // Devuelve => miércoles, 26 de enero de 2011
echo strftime( '%d/%m/%Y', $fecnac->getTimestamp() );           // Devuelve => 26/02/2011

¿Qué te pareció el artículo?
No molaPobreMolaMuy bueno¡Excelente! (Ninguna valoración todavía)
Cargando…
Mauricio Gelves
Mauricio Gelves es Lic. en Informática y trabaja como Consultor Web Freelance con su marca personal MauGelves. Se especializó en WordPress para ofrecer soluciones personalizadas y rentables a medianas y largas empresas. Es Nómade Digital desde el año 2015, actividad que combina sus dos principales pasiones: la informática y los viajes, y refleja sus experiencias a través de sus hobbies audiovisuales en Instagram y YouTube.
10 Pasos para ser Freelance - eBook Gratuito

10 pasos para convertirte en Freelance

Descarga en forma totalmente gratuita mi eBook en donde explico los 10 pasos que he dado para convertirme en Freelance.

Ingresa tu email y recibe en tu bandeja de correo el enlace para descargarte el eBook.

(Te doy mi palabra que solo enviaré un email al mes con todas mis novedades)


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *