O painel de administração do Bootstrap precisa fazer malabarismos com diferentes formatos de data e hora, dependendo da situação. Veja como isso funciona.
Lista dos formatos de data, data e hora usados no PHP CRUD Generator
Páginas | Uso | Idioma | Formato |
---|---|---|---|
LER listas | Data legível por humanos traduzida de acordo com o idioma do usuário | PHP com extensão intl ativada | UTI * |
LER listas | Data legível por humanos NÃO traduzida | PHP sem a extensão intl ativada | Formato de data PHP ** |
Formulários CREATE / UPDATE | Plug-ins do Datepicker | Javascript | Formatos do plugin Pickadate *** |
Objetos PHP | Campos de data, hora e data e hora do banco de dados | PHP/MySQL | Y-m-d H:i:s |
*UTI - https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classSimpleDateFormat.html#details
**Lista de formatos de data do PHP: https://www.php.net/manual/en/function.date.php
***Listade formatos de data do Pickadate: https://amsul.ca/pickadate.js/date/
Formatos de data e hora no Generator e no painel do administrador
Quando o senhor define um formato de data/hora em uma lista READ do gerador, sua escolha é armazenada em um arquivo interno(generator/database/phpcg/[your_table].json).
O formato armazenado é o formato Javascript
Os selecionadores de data e hora do formulário de administração usarão esse formato, + um campo oculto com um sufixo"_submit" para enviar os valores no formato de data/hora do MySQL.
O modelo de lista TWIG READ precisará posteriormente converter a data/hora do valor MySQL para o formato legível por humanos.
Para isso, o formato Javascript é convertido pelo gerador em PHP ICU por generator/class/generator/TemplatesUtilities.php. O formato PHP ICU gerado será passado como argumento no modelo TWIG para converter a data/hora do MySQL para o formato legível por humanos.
A função é pickerdateToPhpdate($pickerdate)
A classe de item constrói o valor do objeto usando o formato PHP/MySQL (sem conversão de formato)
O modelo TWIG da lista READ chama a função formatDate($date, $format)
em vendor/twig/twig/lib/Twig/Extension/CrudTwigExtension.php
O $date
fornecido está no formato PHP/MySQL e pode ser uma data, uma hora ou um datetime.
O $format
fornecido é o formato ICU.
IntlDateFormatter::formatObject()
usando Locale::getDefault()
Os datetimes abaixo são gerados a partir de um formato aleatório usando a mesma lógica do CRUD Generator.