Verwaltung von Datums- und Zeitformaten in PHP-Anwendungen
Technischer Leitfaden für Entwickler

Das Bootstrap Admin-Dashboard muss je nach Situation mit verschiedenen Datums- und Zeitformaten jonglieren. So funktioniert es.


Die verschiedenen Datums- und Zeitformate

Liste der in PHP CRUD Generator verwendeten Datums-, Datetime- und Zeitformate

Seiten Verwendung Sprache Format
READ-Listen Von Menschen lesbares Datum, übersetzt in die Sprache des Benutzers PHP mit aktivierter intl-Erweiterung INTENSIVSTATION *
READ-Listen Von Menschen lesbares Datum NICHT übersetzt PHP ohne aktivierte intl-Erweiterung PHP Datumsformat **
CREATE / UPDATE Formulare Datepicker-Plugins Javascript Pickadate Plugin-Formate ***
PHP-Objekte Datenbankfelder für Datum, Uhrzeit und Datetime PHP/MySQL Y-m-d H:i:s

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

**PHPDatumsformate Liste: https://www.php.net/manual/en/function.date.php

***PickadateDatumsformate Liste: https://amsul.ca/pickadate.js/date/


Verwaltung von PHP/JavaScript Datums- und Zeitformaten im Admin-Dashboard

Die Datums- und Zeitformate des Generators und des Admin-Panels

  1. Wenn Sie ein Datums-/Zeitformat in einer READ-Liste des Generators festlegen, wird Ihre Wahl in der internen Datei(generator/database/phpcg/[your_table].json) gespeichert.

    Das gespeicherte Format ist das Javascript-Format

    Die Datums- und Zeitauswahlen des Verwaltungsformulars verwenden dieses Format + ein verstecktes Feld mit dem Suffix"_submit", um die Werte im MySQL-Datums-/Zeitformat zu senden.

  2. Die TWIG READ list-Vorlage muss später das Datum / die Uhrzeit aus dem MySQL-Wert in ein für Menschen lesbares Format umwandeln.
    Zu diesem Zweck wird das Javascript-Format vom Generator in PHP ICU umgewandelt, und zwar durch generator/class/generator/TemplatesUtilities.php. Das generierte PHP ICU-Format wird als Argument in der TWIG-Vorlage übergeben, um das MySQL-Datum / die Uhrzeit in das für Menschen lesbare Format zu konvertieren.

    Die Funktion lautet pickerdateToPhpdate($pickerdate)

  3. Die Elementklasse erstellt den Objektwert unter Verwendung des PHP/MySQL-Formats (keine Formatkonvertierung)

  4. die TWIG-Vorlage READ list ruft die Funktion formatDate($date, $format) in vendor/twig/twig/lib/Twig/Extension/CrudTwigExtension.php auf

    Das angegebene $date ist im PHP/MySQL-Format und kann ein Datum, eine Uhrzeit oder eine Datetime sein.

    Das angegebene $format ist das ICU-Format.

    • wenn die PHP intl-Erweiterung aktiviert ist, wird das Datum entsprechend Ihrer Spracheinstellungen mit IntlDateFormatter::formatObject() unter Verwendung von Locale::getDefault() übersetzt angezeigt
    • wenn die PHP intl-Erweiterung nicht aktiviert ist, wird das ICU-Datum / die ICU-Zeit in das klassische PHP-Datumsformat umgewandelt

Beispiele für zufällige Datumsformate

Die untenstehenden Datumsangaben werden aus einem zufälligen Format mit der gleichen Logik wie der CRUD-Generator generiert.

$Auswahldatum
yy m dd HH i A
$icu_format
yy M dd HH m a
$icu_date
25 2 21 16 8 Uhr
$php_format
y n d H i a
$php_date
25 2 21 16 08 pm

$Auswahldatum
yy mmm ddd HH i a
$icu_format
yy MMM eee HH m a
$icu_date
25 Feb Fr 16 8 pm
$php_format
y M D H i a
$php_date
25 Feb Fr 16 08 pm

$Auswahldatum
yy m dd HH i a
$icu_format
yy M dd HH m a
$icu_date
25 2 21 16 8 Uhr
$php_format
y n d H i a
$php_date
25 2 21 16 08 pm

$Auswahldatum
jjjj mm tt H i a
$icu_format
jjjj MM tt H m a
$icu_date
2025 02 21 16 8 pm
$php_format
Y m d G i a
$php_date
2025 02 21 16 08 pm

$Auswahldatum
jjjj mm d h i A
$icu_format
jjjj MM d h m a
$icu_date
2025 02 21 4 8 pm
$php_format
Y m j g i a
$php_date
2025 02 21 4 08 pm

$Auswahldatum
yyyy mmmm dddd h i a
$icu_format
yyyy MMMM eeee h m a
$icu_date
2025 Februar Freitag 4 20 Uhr
$php_format
Y F l g i a
$php_date
2025 Februar Freitag 4 08 pm

$Auswahldatum
jjjj mmm tt H i A
$icu_format
jjjj MMM eee H m a
$icu_date
2025 Feb Fr 16 8 pm
$php_format
Y M D G i a
$php_date
2025 Feb Fr 16 08 pm

$Auswahldatum
yy mmmm dd HH i a
$icu_format
jj MMMM tt HH m a
$icu_date
25 Februar 21 16 8 pm
$php_format
y F d H i a
$php_date
25 Februar 21 16 08 pm

$Auswahldatum
yy m d HH i a
$icu_format
yy M d HH m a
$icu_date
25 2 21 16 8 Uhr
$php_format
y n j H i a
$php_date
25 2 21 16 08 pm

$Auswahldatum
yy mmmm d HH i A
$icu_format
yy MMMM d HH m a
$icu_date
25 Februar 21 16 8 pm
$php_format
y F j H i a
$php_date
25 Februar 21 16 08 pm

PHP CRUD-Tutorial Hauptseite