You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Chronos focuses on providing immutable date/datetime objects.
Immutable objects help ensure that datetime objects aren't accidentally
modified, keeping data more predictable.
Installation
Installing with composer:
$ composer require cakephp/chronos
For details on the (minimum/maximum) PHP version see version map.
Chronos was originally compatible with Carbon but has diverged and no longer
extends the PHP DateTime and DateTimeImmutable classes.
Immutable Object Changes
Immutable objects have a number of advantages:
Using immutable objects is always free of side-effects.
Dates and times don't accidentally change underneath other parts of your code.
With those benefits in mind, there are a few things you need to keep in mind
when modifying immutable objects:
// This will lose modifications$date = newChronos('2015-10-21 16:29:00');
$date->modify('+2 hours');
// This will keep modifications$date = newChronos('2015-10-21 16:29:00');
$date = $date->modify('+2 hours');
Calendar Dates
PHP only offers datetime objects as part of the native extensions. Chronos adds
a number of conveniences to the traditional DateTime object and introduces
a ChronosDate object. ChronosDate instances their time frozen to 00:00:00 and the timezone
set to the server default timezone. This makes them ideal when working with
calendar dates as the time components will always match.