tessera-php/tessera-type-datetime

Tessera type: DateTime

Maintainers

Package info

github.com/tessera-php/tessera-type-datetime

pkg:composer/tessera-php/tessera-type-datetime

Statistics

Installs: 8

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-02-23 12:49 UTC

This package is auto-updated.

Last update: 2026-04-25 18:16:56 UTC


README

Тип datetime для Tessera.

Установка

composer require tessera-php/tessera-type-datetime

Использование

use Tessera\Type\Datetime\DatetimeType;
use Tessera\Type\Datetime\DatetimeData;

$type = new DatetimeType();

// Валидация
$type->validate(new DateTimeImmutable());  // true
$type->validate('2024-06-15 10:30:00');    // true
$type->validate('2024-06-15T10:30:00Z');   // true
$type->validate(1718438400);               // true (unix timestamp)
$type->validate('invalid');                // false

// Нормализация
$data = $type->normalize('2024-06-15 10:30:00');
echo $data->value->format('Y-m-d H:i:s');  // 2024-06-15 10:30:00

// DTO
$data = new DatetimeData(new DateTimeImmutable('2024-06-15'));
echo $data->value->format('Y-m-d');        // 2024-06-15

Принимаемые форматы

  • DateTimeInterface — объекты DateTime и DateTimeImmutable
  • string — строка даты/времени (парсинг через DateTimeImmutable)
  • int — unix timestamp

Часовой пояс

Для строк без указания часового пояса используется date_default_timezone_get().

Контракт

provide: tessera-contract-type/datetime

Лицензия

MIT