Date objects can be compared to decide whether an event is early, on time, or late.

Compare Dates

compare_dates.php
<?php
$shipDay = ;
$due = new DateTimeImmutable("2026-06-05", new DateTimeZone("UTC"));
$ship = new DateTimeImmutable($shipDay, new DateTimeZone("UTC"));

if ($ship < $due) {
    $status = "early";
} elseif ($ship > $due) {
    $status = "late";
} else {
    $status = "on_time";
}

echo "shipDay=" . $shipDay . "\n";
echo "status=" . $status . "\n";
<?php
$shipDay = ;
$due = new DateTimeImmutable("2026-06-05", new DateTimeZone("UTC"));
$ship = new DateTimeImmutable($shipDay, new DateTimeZone("UTC"));

if ($ship < $due) {
    $status = "early";
} elseif ($ship > $due) {
    $status = "late";
} else {
    $status = "on_time";
}

echo "shipDay=" . $shipDay . "\n";
echo "status=" . $status . "\n";
<?php
$shipDay = ;
$due = new DateTimeImmutable("2026-06-05", new DateTimeZone("UTC"));
$ship = new DateTimeImmutable($shipDay, new DateTimeZone("UTC"));

if ($ship < $due) {
    $status = "early";
} elseif ($ship > $due) {
    $status = "late";
} else {
    $status = "on_time";
}

echo "shipDay=" . $shipDay . "\n";
echo "status=" . $status . "\n";
comparison Compare fixed date objects and convert the result into a clear scalar label.