Dates and Time Concepts
Create Date
DateTimeImmutable represents a date or time without changing the original object.
fixed date
Use fixed input dates in examples so replay is deterministic.
Create Date
create_date.php
Replay: real traced execution (multi-file project)
<?php
$day = "2026-05-31";
$date = new DateTimeImmutable($day, new DateTimeZone("UTC"));
$label = $date->format("Y-m-d");
echo "day=" . $day . "\n";
echo "label=" . $label . "\n";
<?php
$day = "2026-06-01";
$date = new DateTimeImmutable($day, new DateTimeZone("UTC"));
$label = $date->format("Y-m-d");
echo "day=" . $day . "\n";
echo "label=" . $label . "\n";
<?php
$day = "2026-12-25";
$date = new DateTimeImmutable($day, new DateTimeZone("UTC"));
$label = $date->format("Y-m-d");
echo "day=" . $day . "\n";
echo "label=" . $label . "\n";
$day ← 2026-05-31, $date ← DateTimeImmutable, $label ← 2026-05-31
1<?php2$day→ 2026-05-31 = "2026-05-31"; //@day="2026-06-01", "2026-12-25"3$date→ DateTimeImmutable = new DateTimeImmutable($day2026-05-31, new DateTimeZone("UTC"));4$label→ 2026-05-31 = $dateDateTimeImmutable->format("Y-m-d");56echo "day=" . $day2026-05-31 . "\n";7echo "label=" . $label2026-05-31 . "\n";outputday=2026-05-31 label=2026-05-31
$day ← 2026-06-01, $date ← DateTimeImmutable, $label ← 2026-06-01
1<?php2$day→ 2026-06-01 = "2026-06-01";3$date→ DateTimeImmutable = new DateTimeImmutable($day2026-06-01, new DateTimeZone("UTC"));4$label→ 2026-06-01 = $dateDateTimeImmutable->format("Y-m-d");56echo "day=" . $day2026-06-01 . "\n";7echo "label=" . $label2026-06-01 . "\n";outputday=2026-06-01 label=2026-06-01
$day ← 2026-12-25, $date ← DateTimeImmutable, $label ← 2026-12-25
1<?php2$day→ 2026-12-25 = "2026-12-25";3$date→ DateTimeImmutable = new DateTimeImmutable($day2026-12-25, new DateTimeZone("UTC"));4$label→ 2026-12-25 = $dateDateTimeImmutable->format("Y-m-d");56echo "day=" . $day2026-12-25 . "\n";7echo "label=" . $label2026-12-25 . "\n";outputday=2026-12-25 label=2026-12-25