37 lines
898 B
PHP
37 lines
898 B
PHP
<?php
|
|
|
|
namespace Illuminate\Support;
|
|
|
|
use Carbon\Carbon as BaseCarbon;
|
|
use Carbon\CarbonImmutable as BaseCarbonImmutable;
|
|
use Illuminate\Support\Traits\Conditionable;
|
|
use Illuminate\Support\Traits\Dumpable;
|
|
use Ramsey\Uuid\Uuid;
|
|
use Symfony\Component\Uid\Ulid;
|
|
|
|
class Carbon extends BaseCarbon
|
|
{
|
|
use Conditionable, Dumpable;
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public static function setTestNow(mixed $testNow = null): void
|
|
{
|
|
BaseCarbon::setTestNow($testNow);
|
|
BaseCarbonImmutable::setTestNow($testNow);
|
|
}
|
|
|
|
/**
|
|
* Create a Carbon instance from a given ordered UUID or ULID.
|
|
*/
|
|
public static function createFromId(Uuid|Ulid|string $id): static
|
|
{
|
|
if (is_string($id)) {
|
|
$id = Ulid::isValid($id) ? Ulid::fromString($id) : Uuid::fromString($id);
|
|
}
|
|
|
|
return static::createFromInterface($id->getDateTime());
|
|
}
|
|
}
|