Метод getDateTime класса Ulid
Метод getDateTime класса Ulid возвращает дату и время,
закодированные в первых 48 битах ULID. ULID состоит из временной метки
(48 бит, миллисекунды с начала эпохи Unix) и случайной части (80 бит).
Метод не принимает параметров и возвращает объект DateTimeImmutable
в часовом поясе UTC.
Синтаксис
$ulid->getDateTime(): \DateTimeImmutable
Пример
Давайте сгенерируем ULID и получим из него дату и время:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentUidUlid;
class ArticleController extends AbstractController
{
public function index(): Response
{
$ulid = new Ulid();
$dateTime = $ulid->getDateTime();
return new Response($dateTime->format('Y-m-d H:i:s'));
}
}
?>
Результат выполнения кода:
"2024-01-15 10:30:45"
Пример
Давайте получим дату и время из ULID, созданного из строки:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentUidUlid;
class ArticleController extends AbstractController
{
public function index(): Response
{
$ulid = Ulid::fromString('01HKZ8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z');
$dateTime = $ulid->getDateTime();
return new Response($dateTime->format('d.m.Y H:i:s'));
}
}
?>
Результат выполнения кода:
"15.01.2024 10:30:45"
Пример
Давайте сравним дату из ULID с текущей датой:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentUidUlid;
class ArticleController extends AbstractController
{
public function index(): Response
{
$ulid = new Ulid();
$dateTime = $ulid->getDateTime();
$now = new \DateTimeImmutable();
$diff = $now->getTimestamp() - $dateTime->getTimestamp();
return new Response('Difference: ' . $diff . ' seconds');
}
}
?>
Результат выполнения кода:
"Difference: 0 seconds"
Смотрите также
-
класс
Ulid,
который представляет уникальный идентификатор -
метод
generate,
который генерирует новый ULID -
метод
fromString,
который создаёт ULID из строки -
метод
toRfc4122,
который возвращает ULID в формате RFC 4122