Chronos konzentriert sich auf die Bereitstellung unveränderlicher Datums-/Datumszeitobjekte. Unveränderliche Objekte tragen dazu bei, dass Datum/Uhrzeit-Objekte nicht versehentlich geändert werden, wodurch die Daten vorhersehbarer bleiben.
Installation mit Composer:
$ composer require cakephp/chronos
Sie können Chronos dann verwenden:
<?phprequire 'vendor/autoload.php';use CakeChronosChronos;printf("Now: %s", Chronos::now());
Chronos war ursprünglich mit Carbon kompatibel, hat sich jedoch geändert und erweitert die PHP-Klassen DateTime und DateTimeImmutable nicht mehr.
Unveränderliche Objekte haben eine Reihe von Vorteilen:
Die Verwendung unveränderlicher Objekte ist immer frei von Nebenwirkungen.
Datums- und Uhrzeitangaben ändern sich nicht versehentlich in anderen Teilen Ihres Codes.
Angesichts dieser Vorteile müssen Sie beim Ändern unveränderlicher Objekte einige Dinge beachten:
// Dadurch gehen die Änderungen verloren$date = new Chronos('2015-10-21 16:29:00');$date->modify('+2 hours');// Dadurch bleiben die Änderungen erhalten$date = new Chronos ('21.10.2015 16:29:00');$date = $date->modify('+2 Stunden');
PHP bietet als Teil der nativen Erweiterungen nur Datetime-Objekte an. Chronos fügt dem herkömmlichen DateTime-Objekt eine Reihe von Annehmlichkeiten hinzu und führt ein ChronosDate
Objekt ein. ChronosDate
instanziert ihre Zeit auf 00:00:00
und stellt die Zeitzone auf die Standardzeitzone des Servers ein. Dies macht sie ideal für die Arbeit mit Kalenderdaten, da die Zeitkomponenten immer übereinstimmen.
use CakeChronosChronosDate;$today = new ChronosDate();echo $today;// Gibt '2015-10-21'echo $today->modify('+3 hours');// Gibt '2015-10-21' aus
Wie Instanzen von Chronos
sind auch ChronosDate
Objekte unveränderlich .
Eine ausführlichere Dokumentation finden Sie unter book.cakephp.org/chronos/3/en/.
Die API-Dokumentation finden Sie unter api.cakephp.org/chronos.