healthengine/laravel-chronos
Chronos, from HealthEngine, gives Laravel apps control over the clock: freeze, travel to, or shift time in your application and test suite so date-dependent logic stays deterministic. Ideal for testing scheduled jobs, expiries, and time-sensitive features.
CarbonImmutable as an opt-in). If post-incident reviews or bug triage show a recurring class of "date object mutated unexpectedly" defects, this package is evidence that a swap is technically feasible in Laravel — and a starting point for scoping that work.now(), validation, serialization). That's an input to upgrade planning: any Laravel major-version bump has a blast radius defined by how much we deviate from framework defaults.Consider it only as source material, not as an installed dependency:
Look elsewhere when:
CarbonImmutable is a first-party, supported one-line change with no framework surgery. Start there; it captures most of the benefit at a fraction of the risk.Illuminate\Support\Carbon, Eloquent date casts, validation rules, now(), diffForHumans) are Carbon-typed. A partial swap creates two date types in one codebase, which is a worse failure mode than either choice made cleanly.For executives: This is a small, archived open-source package that swaps Laravel's standard date handling library for an alternative. Our recommendation is not to adopt it. It has negligible community traction, no active maintenance, and no security patch path — using it in production would create an unsupported dependency in a foundational layer. It has value only as a blueprint: it tells us roughly what it would cost to move to an immutable date library across our Laravel services. If we pursue that goal, the realistic price is a fork with a named internal owner plus ongoing upgrade work, not a composer require. We should decide whether the benefits (fewer date-mutation bugs, consistency with any CakePHP systems) justify that recurring cost. Our default position is to stay on stock Laravel and treat immutability as a coding standard via CarbonImmutable.
For engineering: Read it, don't install it. The repo is archived with 3 stars and 0 dependents, so anything we adopt we own permanently. The useful content is the wiring: how it rebinds Carbon, handles Eloquent casts, and replaces helpers — that's our scoping estimate for a Chronos migration. Before we consider that, confirm the problem is real: check whether our defects actually stem from mutable dates, because if they do, CarbonImmutable plus a lint rule buys most of the win with near-zero risk. If we do proceed, the decision is explicit — we fork, we name an owner, we accept that every Laravel major upgrade now requires a compatibility pass on our date layer, and we finish the migration rather than leaving two date types in the codebase.
How can I help you explore Laravel packages today?