19declare(strict_types=1);
25 protected function getCurrentDateTime(): \DateTimeImmutable
27 return new \DateTimeImmutable(
'now',
new \DateTimeZone(
'UTC'));
30 protected function getCurrentDate(): \DateTimeImmutable
32 return $this->getCurrentDateTime()->setTime(0, 0);
35 protected function getFormattedDateTime(\DateTimeImmutable
$datetime): string
37 return $datetime->format(
'Y-m-d\TH:i:sp');
40 protected function getFormattedDate(\DateTimeImmutable $date): string
42 return $date->format(
'Y-m-d');
45 protected function isStringValidAsDate(
string $string): bool
47 $date = \DateTimeImmutable::createFromFormat(
'Y-m-d', $string);
48 return $date && $date->format(
'Y-m-d') === $string;
51 protected function getDateFromString(
string $string): \DateTimeImmutable
53 return new \DateTimeImmutable($string,
new \DateTimeZone(
'UTC'));