Lógica de gestión de los formatos de fecha y hora

El panel de administración de Bootstrap tiene que hacer malabarismos con diferentes formatos de fecha y hora dependiendo de la situación. He aquí cómo 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
aaaa mmm dd HH i a
$icu_formato
aaaa MMM dd HH m a
$icu_fecha
2024 Ene 10 09 10 am
$formato_php
Y M d H i a
$fecha_php
2024 Ene 10 09 10 am

$fecha de selección
aaaa m ddd h i a
$icu_formato
yyyy M eee h m a
$icu_fecha
2024 1 mié 9 10h
$formato_php
Y n D g i a
$fecha_php
2024 1 mié 9 10h

$fecha de selección
aa mm dd h i a
$icu_formato
yy MM dd h m a
$icu_fecha
24 01 10 9 10 am
$formato_php
y m d g i a
$fecha_php
24 01 10 9 10 am

$fecha de selección
aaaa m dd HH i a
$icu_formato
aaaa M dd HH m a
$icu_fecha
2024 1 10 09 10 horas
$formato_php
Y n d H i a
$fecha_php
2024 1 10 09 10 horas

$fecha de selección
aaaa mmm dddd HH i a
$icu_formato
aaaa MMM eeee HH m a
$icu_fecha
2024 Ene Miércoles 09 10h
$formato_php
Y M l H i a
$fecha_php
2024 Ene Miércoles 09 10h

$fecha de selección
yy mmmm d h i a
$icu_formato
yy MMMM d h m a
$icu_fecha
24 de enero 10 9 10 horas
$formato_php
y F j g i a
$fecha_php
24 de enero 10 9 10 horas

$fecha de selección
yy mmmm ddd HH i A
$icu_formato
yy MMMM eee HH m a
$icu_fecha
24 enero mié 09 10h
$formato_php
y F D H i a
$fecha_php
24 enero mié 09 10h

$fecha de selección
yy mmmm dd HH i A
$icu_formato
yy MMMM dd HH m a
$icu_fecha
24 enero 10 09 10 am
$formato_php
y F d H i a
$fecha_php
24 enero 10 09 10 am

$fecha de selección
yy mmm dd H i A
$icu_formato
yy MMM dd H m a
$icu_fecha
24 Ene 10 9 10 am
$formato_php
y M d G i a
$fecha_php
24 Ene 10 9 10 am

$fecha de selección
yy mmmm d H i a
$icu_formato
yy MMMM d H m a
$icu_fecha
24 de enero 10 9 10 horas
$formato_php
y F j G i a
$fecha_php
24 de enero 10 9 10 horas

Página principal del tutorial PHP CRUD