Chronos фокусируется на предоставлении неизменяемых объектов даты и времени. Неизменяемые объекты помогают гарантировать, что объекты datetime не будут случайно изменены, что делает данные более предсказуемыми.
Установка с помощью композитора:
$ composer require cakephp/chronos
Затем вы можете использовать Chronos:
<?phprequire 'vendor/autoload.php';use CakeChronosChronos;printf("Сейчас: %s", Chronos::now());
Изначально Chronos был совместим с Carbon, но он разошелся и больше не расширяет классы PHP DateTime и DateTimeImmutable.
Неизменяемые объекты имеют ряд преимуществ:
Использование неизменяемых объектов всегда лишено побочных эффектов.
Даты и время не изменяются случайно под другими частями вашего кода.
Учитывая эти преимущества, при изменении неизменяемых объектов следует учитывать несколько вещей:
// Модификации $date = new Chronos('2015-10-21 16:29:00');$date->modify('+2hours');// Модификации останутся $date = new Chronos ('2015-10-21 16:29:00');$date = $date->modify('+2 часа');
PHP предлагает объекты datetime только как часть собственных расширений. Chronos добавляет ряд удобств к традиционному объекту DateTime и представляет объект ChronosDate
. ChronosDate
указывает, что их время заморожено до 00:00:00
, а часовой пояс установлен на часовой пояс сервера по умолчанию. Это делает их идеальными при работе с календарными датами, поскольку компоненты времени всегда совпадают.
use CakeChronosChronosDate;$today = new ChronosDate();echo $today;// Выводы '2015-10-21'echo $today->modify('+3 часа');// Выводы '2015-10-21'
Подобно экземплярам Chronos
, объекты ChronosDate
также являются неизменяемыми .
Более подробную документацию можно найти по адресу book.cakephp.org/chronos/3/en/.
Документацию по API можно найти на api.cakephp.org/chronos.