Chronos se centra en proporcionar objetos de fecha/fecha y hora inmutables. Los objetos inmutables ayudan a garantizar que los objetos de fecha y hora no se modifiquen accidentalmente, manteniendo los datos más predecibles.
Instalación con compositor:
$ composer require cakephp/chronos
Luego puedes usar Chronos:
<?phprequire 'vendor/autoload.php';use CakeChronosChronos;printf("Ahora: %s", Chronos::now());
Chronos era originalmente compatible con Carbon, pero divergió y ya no extiende las clases PHP DateTime y DateTimeImmutable.
Los objetos inmutables tienen una serie de ventajas:
El uso de objetos inmutables siempre está libre de efectos secundarios.
Las fechas y horas no cambian accidentalmente debajo de otras partes de su código.
Teniendo en cuenta esos beneficios, hay algunas cosas que debes tener en cuenta al modificar objetos inmutables:
// Esto perderá las modificaciones$date = new Chronos('2015-10-21 16:29:00');$date->modify('+2 hours');// Esto mantendrá las modificaciones$date = new Chronos ('2015-10-21 16:29:00');$fecha = $fecha->modificar('+2 horas');
PHP sólo ofrece objetos de fecha y hora como parte de las extensiones nativas. Chronos agrega una serie de comodidades al objeto DateTime tradicional e introduce un objeto ChronosDate
. ChronosDate
instancia su tiempo congelado a 00:00:00
y la zona horaria configurada en la zona horaria predeterminada del servidor. Esto los hace ideales cuando se trabaja con fechas del calendario, ya que los componentes de tiempo siempre coincidirán.
use CakeChronosChronosDate;$today = new ChronosDate();echo $today;// Salidas '2015-10-21'echo $today->modify('+3 horas');// Salidas '2015-10-21'
Al igual que las instancias de Chronos
, los objetos ChronosDate
también son inmutables .
Puede encontrar documentación más descriptiva en book.cakephp.org/chronos/3/en/.
La documentación de la API se puede encontrar en api.cakephp.org/chronos.