// 1. Using facade
use Davealex\LaravelTimePeriodReference\LaravelTimePeriodReferenceFacade;
$carbonInstance = LaravelTimePeriodReferenceFacade::toCarbonInstance('2 days ago');
dd($carbonInstance->toString())
// 2. Manually instantiating the service class
use Davealex\LaravelTimePeriodReference\LaravelTimePeriodReference;
use Illuminate\Config\Repository;
use Illuminate\Support\Carbon;
// Create a configuration array or use the config repository.
$config = new Repository(config('time-period-reference'));
$timePeriodReference = new LaravelTimePeriodReference($config);
// Convert a string time reference to a Carbon instance.
$carbonInstance = $timePeriodReference->toCarbonInstance('2 days ago');
if ($carbonInstance instanceof Carbon) {
echo $carbonInstance->toDateString(); // Output: e.g., 2024-10-26 (if today is 2024-10-28)
}
// Convert a BackedEnum time reference to a Carbon instance.
enum TimeReferenceEnum: string
{
case TWO_WEEKS = '2 weeks ago';
}
$enumInstance = TimeReferenceEnum::TWO_WEEKS;
$carbonInstanceFromEnum = $timePeriodReference->toCarbonInstance($enumInstance);
if ($carbonInstanceFromEnum instanceof Carbon) {
echo $carbonInstanceFromEnum->toDateString();
}