Chronos se concentre sur la fourniture d'objets date/datetime immuables. Les objets immuables permettent de garantir que les objets datetime ne sont pas accidentellement modifiés, ce qui rend les données plus prévisibles.
Installation avec composer :
$ composer require cakephp/chronos
Vous pouvez alors utiliser Chronos :
<?phprequire 'vendor/autoload.php';use CakeChronosChronos;printf("Maintenant : %s", Chronos::now());
Chronos était à l'origine compatible avec Carbon mais a divergé et n'étend plus les classes PHP DateTime et DateTimeImmutable.
Les objets immuables présentent de nombreux avantages :
L’utilisation d’objets immuables est toujours exempte d’effets secondaires.
Les dates et heures ne changent pas accidentellement sous d’autres parties de votre code.
Compte tenu de ces avantages, vous devez garder à l’esprit certaines choses lorsque vous modifiez des objets immuables :
// Cela perdra les modifications$date = new Chronos('2015-10-21 16:29:00');$date->modify('+2 hours');// Cela conservera les modifications$date = new Chronos ('2015-10-21 16:29:00');$date = $date->modify('+2 heures');
PHP propose uniquement des objets datetime dans le cadre des extensions natives. Chronos ajoute un certain nombre de commodités à l'objet DateTime traditionnel et introduit un objet ChronosDate
. ChronosDate
instance leur heure gelée à 00:00:00
et le fuseau horaire défini sur le fuseau horaire par défaut du serveur. Cela les rend idéaux lorsque vous travaillez avec des dates de calendrier, car les composants temporels correspondront toujours.
use CakeChronosChronosDate;$today = new ChronosDate();echo $today;// Sorties '2015-10-21'echo $today->modify('+3 hours');// Sorties '2015-10-21'
Comme les instances de Chronos
, les objets ChronosDate
sont également immuables .
Une documentation plus descriptive peut être trouvée sur book.cakephp.org/chronos/3/en/.
La documentation de l'API peut être trouvée sur api.cakephp.org/chronos.