assoconnect/php-date
A lightweight PHP AbsoluteDate object for handling dates without time or timezone concerns. Built on DateTime, it represents a simple calendar day—perfect for birthdays and other timezone-agnostic dates—with easy formatting and timezone-aware creation.
TimeTraveler API in particular lets teams simulate "what does the system do on the 31st of next month?" deterministically, which de-risks shipping date-driven features.addMonthWithReference() returns to v2.14.1 semantics). This makes "pin exact versions and read patch changelogs" a deliberate product/engineering policy, not an afterthought.TimeTraveler for date-driven features (renewals, trials, expiry).DateTime intricacies (recurring events, custom periods, DST transitions).date-fns or luxon for frontend-backend consistency).DateTime suffices).2.15.1.Action for teams already on 2.15.0: treat v2.15.1 as a required upgrade if any code depends on addMonthWithReference() results (billing dates, proration, renewal scheduling). Re-run characterization tests on month-end and leap-adjacent cases (Jan 31 → Feb, Feb 29 → Mar) before deploying. Teams on 2.14.1 or earlier: no behavioural change expected, upgrade is low risk.
For Executives: "This package lets us ship time-sensitive features faster — global scheduling, automated reminders, subscription renewals — without hiring specialised backend talent. It handles the hard parts (time zones, 'every 2nd Friday', month-end dates) so we don't carry that risk in our own code. The latest release is a corrective one: the maintainers reverted a behaviour change from the previous version, which is a good sign of responsiveness but also a reminder that date logic is genuinely tricky — exactly why we buy rather than build. The MIT license and active maintenance make it a low-cost, low-risk dependency. My recommendation: adopt, pin the exact version in our lockfile, and require changelog review on every patch bump. That's a small process cost for a meaningful reduction in scheduling bugs."
For Engineering:
"v2.15.1 reverts the v2.15.0 behaviour change to TimeTraveler::addMonthWithReference() (#46, reverted in #47). It's back to v2.14.1 arithmetic: one month after $from, realigned on the reference day of the month actually reached. Only the implementation was reverted — the test suite keeps its #[DataProvider] attributes, so the coverage that surfaced the issue stays in place.
Practical implications: (1) if you're on 2.15.0 and assert on month-reference results, your tests or stored dates may shift — upgrade and re-verify; (2) the method's contract is now effectively frozen at the 2.14.1 semantics, so code written against 2.14.x is safe again; (3) pin the dependency to an exact version and diff the changelog on patch releases, since behaviour has changed twice inside the patch line. TimeTraveler still integrates cleanly with Eloquent timestamp fields and gives deterministic control for date-driven feature tests. Good fit where date logic is a real pain point but not the product's core focus."
How can I help you explore Laravel packages today?