Projectscarbon-zodiacUsage

Carbon Zodiac

Package

Zodiac helpers for the Carbon date library.

Upgrade Guide

Usage

All date APIs accept DateTimeInterface (including Carbon, CarbonImmutable, and native DateTime / DateTimeImmutable).

Carbon macros

After Zodiac::boot() (automatic in Laravel):

use Carbon\Carbon;
use Carbon\CarbonImmutable;

$date = Carbon::parse('1970-02-05');
$immutable = CarbonImmutable::parse('1970-02-06');

$date->zodiacYear();       // Year<1969>
$date->zodiacSign();       // Sign::ROOSTER
$date->zodiacElement();    // Element::EARTH

$immutable->zodiacYear();  // Year<1970>
$immutable->zodiacSign();  // Sign::DOG
$immutable->zodiacElement(); // Element::METAL

Aggregate result

$result = $date->zodiac(); // ZodiacResult

$result->datetime; // CarbonImmutable
$result->year;     // Year
$result->sign;     // Sign
$result->element;  // Element

$result->toArray();

Zodiac helper

use BradieTilley\Zodiac\Zodiac;
use Carbon\Carbon;

$date = Carbon::parse('1970-02-06');

Zodiac::fromDate($date);        // ZodiacResult
Zodiac::yearFromDate($date);    // Year
Zodiac::signFromDate($date);    // Sign
Zodiac::elementFromDate($date); // Element

Direct classes

use BradieTilley\Zodiac\Element;
use BradieTilley\Zodiac\Sign;
use BradieTilley\Zodiac\Year;
use Carbon\Carbon;

$date = Carbon::parse('2024-02-10');

Year::fromDate($date);    // Year<2024>
Sign::fromDate($date);    // Sign::DRAGON
Element::fromDate($date); // Element::WOOD

Year::fromYear(2024);
Sign::fromYear(2024);
Element::fromYear(2024);

Next: Years, Signs, Elements.