Gestión de formatos de fecha y hora en aplicaciones PHP
Guía técnica para desarrolladores

El panel de administración de Bootstrap tiene que hacer malabarismos con diferentes formatos de fecha y hora dependiendo de la situación. Así es como funciona.


Los diferentes formatos de fecha y hora

Lista de los formatos de fecha, fecha-hora y hora utilizados en PHP CRUD Generator

Páginas Utilización Idioma Formato
LEER listas Fecha legible traducida según el idioma del usuario PHP con la extensión intl activada UCI *
LEER listas Fecha legible por humanos NO traducida PHP sin la extensión intl activada Formato de fecha PHP **
CREAR / ACTUALIZAR formularios Plugins Datepicker Javascript Formatos del plugin Pickadate ***
Objetos PHP Campos de fecha, hora y fecha-hora de la base de datos PHP/MySQL Y-m-d H:i:s

*UCI - https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classSimpleDateFormat.html#details

**Listade formatos de fecha de HPP: https://www.php.net/manual/en/function.date.php

***Listade formatos de fecha: https://amsul.ca/pickadate.js/date/


Gestión de los formatos de fecha y hora PHP/JavaScript en el panel de administración

Los formatos de fecha y hora del Generador y del panel de administración

  1. Cuando establece un formato de fecha / hora en una lista READ del generador, su elección se almacena en un archivo interno(generator/database/phpcg/[su_tabla].json).

    El formato almacenado es el de Javascript

    Los selectores de fecha y hora del formulario de administración utilizarán este formato, + un campo oculto con un sufijo"_submit" para enviar los valores en formato fecha / hora MySQL.

  2. La plantilla de la lista TWIG READ necesitará posteriormente convertir la fecha / hora del valor MySQL al formato legible por humanos.
    Para ello, el formato Javascript es convertido por el generador a PHP ICU por generator/class/generator/TemplatesUtilities.php. El formato PHP ICU generado se pasará como argumento en la plantilla TWIG para convertir la fecha / hora de MySQL al formato legible por humanos.

    La función es pickerdateToPhpdate($pickerdate)

  3. La clase item construye el valor del objeto utilizando el formato PHP/MySQL (sin conversión de formato)

  4. la plantilla TWIG READ list llama a la función formatDate($fecha, $formato) en vendor/twig/twig/lib/Twig/Extension/CrudTwigExtension.php

    La $fecha dada está en formato PHP/MySQL y puede ser una fecha, una hora o una fecha-hora.

    El $formato dado es el formato de la UCI.

    • si la extensión intl de PHP está activada mostrará la fecha traducida según la configuración de su idioma con IntlDateFormatter::formatObject() usando Locale::getDefault()
    • si la extensión PHP intl no está habilitada convierte la fecha / hora de la UCI al formato de fecha clásico de PHP

Ejemplos de formatos de fecha y hora aleatorios

Las fechas que aparecen a continuación se generan a partir de un formato aleatorio utilizando la misma lógica que el generador CRUD.

$fecha de selección
yy m dddd H i a
$icu_formato
yy M eeee H m a
$icu_fecha
25 2 Miércoles 9 50 h
$formato_php
y n l G i a
$fecha_php
25 2 Miércoles 9 50 h

$fecha de selección
aaaa mmm dd H i A
$icu_formato
aaaa MMM dd H m a
$icu_fecha
2025 Feb 19 9 50 am
$formato_php
Y M d G i a
$fecha_php
2025 Feb 19 9 50 am

$fecha de selección
aaaa m dddd HH i A
$icu_formato
yyyy M eeee HH m a
$icu_fecha
2025 2 Miércoles 09 50 horas
$formato_php
Y n l H i a
$fecha_php
2025 2 Miércoles 09 50 horas

$fecha de selección
yy mm dddd H i A
$icu_formato
yy MM eeee H m a
$icu_fecha
25 02 Miércoles 9 50 h
$formato_php
y m l G i a
$fecha_php
25 02 Miércoles 9 50 h

$fecha de selección
yy mmm ddd h i A
$icu_formato
yy MMM eee h m a
$icu_fecha
25 feb mié 9 50
$formato_php
y M D g i a
$fecha_php
25 feb mié 9 50

$fecha de selección
yy mm dd H i a
$icu_formato
yy MM dd H m a
$icu_fecha
25 02 19 9 50 am
$formato_php
y m d G i a
$fecha_php
25 02 19 9 50 am

$fecha de selección
yy mmmm ddd h i A
$icu_formato
yy MMMM eee h m a
$icu_fecha
25 febrero mié 9 50
$formato_php
y F D g i a
$fecha_php
25 febrero mié 9 50

$fecha de selección
aa mmm d hh i a
$icu_formato
yy MMM d hh m a
$icu_fecha
25 feb 19 09 50 am
$formato_php
y M j h i a
$fecha_php
25 feb 19 09 50 am

$fecha de selección
aaaa mm dd HH i a
$icu_formato
aaaa MM dd HH m a
$icu_fecha
2025 02 19 09 50 am
$formato_php
Y m d H i a
$fecha_php
2025 02 19 09 50 am

$fecha de selección
aaaa mm d h i A
$icu_formato
aaaa MM d h m a
$icu_fecha
2025 02 19 9 50 am
$formato_php
Y m j g i a
$fecha_php
2025 02 19 9 50 am

Página principal del tutorial PHP CRUD