Documentation / DateTime Converter

Introduction

The DateTimeConverter converts DateTime related classes to string. Convertable classes are DateTimeInterface (DateTime and DateTimeImmutable), DateTimeZone, DateInterval and DatePeriod.

Using the converter

$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

Formatting

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