phrity/util-transformer
Lightweight PHP utility for transforming values between types. Provides transformers with canTransform()/transform(), plus resolvers to chain and recurse converters. Includes JSON/flatten decoders and converters for basic types, DateTime, enums, Stringable, Throwable and more.
Documentation / DateTime Converter
The DateTimeConverter converts DateTime related classes to string.
Convertable classes are DateTimeInterface (DateTime and DateTimeImmutable), DateTimeZone, DateInterval and DatePeriod.
$converter = new DateTimeConverter();
$converter->canTransform(new DateTime('2025-07-29 14:13')); // -> bool
$converter->transform(new DateTime('2025-07-29 14:13')); // -> string output
$converter->canTransform(new DateTimeZone('Europe/London')); // -> bool
$converter->transform(new DateTimeZone('Europe/London')); // -> string output
$converter->canTransform(new DateInterval('P1W2D')); // -> bool
$converter->transform(new DateInterval('P1W2D')); // -> string output
$converter->canTransform(new DatePeriod(new DateTime('2025-07-29 12:34'), new DateInterval('P1D'), 2)); // -> bool
$converter->transform(new DatePeriod(new DateTime('2025-07-29 12:34'), new DateInterval('P1D'), 2)); // -> string output
The dateTimeFormat specifies formatting of date-times.
See format param of DateTime class.
Default format is c (ISO 8601).
$converter = new DateTimeConverter(dateTimeFormat: 'M d, Y');
$converter->transform(new DateTime('2025-07-29 14:13')); // -> string output
$converter->transform(new DatePeriod(new DateTime('2025-07-29 12:34'), new DateInterval('P1D'), 2)); // -> string output
The dateIntervalFormat specifies formatting of date-intervals.
See format param of DateInterval class.
Default format is %d (number of days).
$converter = new DateTimeConverter(dateIntervalFormat: '%R%d days');
$converter->transform(new DateInterval('P1W2D')); // -> string output
$converter->transform(new DatePeriod(new DateTime('2025-07-29 12:34'), new DateInterval('P1D'), 2)); // -> string output
How can I help you explore Laravel packages today?