CloudCastle Clock

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano

CalendarDate — aritmetica del calendario di livello Carbon

Scopo

Data di calendario sopra DateTimeImmutable: aritmetica di mesi/anni con controllo dell'overflow (addMonthsNoOverflow), limiti dei periodi, isoFormat e diffForHumans in 6 lingue — senza ICU/ext-intl. Le declinazioni sono costruite da cloud-castle/inflector.

A cosa serve e come usarlo

Sostituto di Carbon dove serve solo un'aritmetica di calendario corretta e un output localizzato: CalendarDate::parse()/now(), poi addMonthsNoOverflow(), startOfQuarter(), diffForHumans(null, 'ru').

Esempio

$date = CalendarDate::parse('2026-01-31', 'UTC');
$date->addMonthsNoOverflow(1)->format('Y-m-d'); // 2026-02-28, not “3 March”
$date->isWeekend();                             // is it a weekend day
$date->diffInDays($other);                      // integer difference
$date->next(5)->format('Y-m-d');                // the nearest Friday
$date->subDays(5)->diffForHumans($date, 'en');  // “5 days ago”

Anti-pattern

Non sceglierlo solo per l'integrazione stretta con Laravel (facciate, cast delle date di Eloquent) — è l'unico ambito in cui Carbon è più ricco; l'API di calendario in sé è alla pari con Carbon.

Ciclo di vita

flowchart LR
    A[parse / now / fromClock] --> B[CalendarDate]
    B -->|addMonthsNoOverflow / startOfQuarter| B
    B -->|isWeekend / diffInDays / next| B
    B -->|isoFormat / diffForHumans| C[CloudCastle inflector]
    C --> D[Localised string]

Confronto della funzionalità con gli analoghi

Aspetto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Aritmetica dei mesi senza overflow✅❌✅❌❌❌
Limiti dei periodi (startOf/endOf)✅❌✅❌❌❌
Predicati del giorno della settimana e relativi (isWeekend/isToday)✅❌✅❌❌❌
Differenze intere (diffInDays…diffInYears)✅❌✅❌❌❌
Navigazione (next/previous/firstOfMonth)✅❌✅❌❌❌
diffForHumans in 6 lingue✅❌✅❌❌❌
Localizzazione senza ICU/ext-intl✅❌❌❌❌❌
Data da orologio iniettabile (determinismo)✅❌❌❌❌❌
Totale🏆 806000

← Torna all'elenco delle funzionalità


🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano