Een datum in de toekomst of het verleden berekenen

PHP:
Een datum in de toekomst of het verleden berekenen

Hoe:

PHP maakt datumberekeningen eenvoudig met DateTime en DateInterval. Kijk maar:

<?php
// De datum van vandaag
$today = new DateTime();
echo $today->format('Y-m-d H:i:s') . "\n";

// Voeg 10 dagen toe
$today->add(new DateInterval('P10D'));
echo $today->format('Y-m-d H:i:s') . "\n";

// Trek 2 maanden af
$today->sub(new DateInterval('P2M'));
echo $today->format('Y-m-d H:i:s') . "\n";
?>

Uitvoer zou kunnen zijn:

2023-04-01 12:34:56
2023-04-11 12:34:56
2023-02-11 12:34:56

Diepere duik

Vroeger waren PHP-datumberekeningen meer foutgevoelig. strtotime, hoewel nog steeds nuttig, kan je in de war brengen met randgevallen. DateTime en DateInterval brachten precisie en objectgeoriënteerde duidelijkheid.

Alternatieven? Zeker. Bibliotheken zoals Carbon wikkelen PHP’s datumfunctionaliteit voor meer leesbaarheid en functies, maar in veel gevallen zullen de ingebouwde klassen van PHP prima volstaan.

Onder de motorkap wijzigen DateTime::add() en DateTime::sub() het object, dus het is niet nodig om opnieuw toe te wijzen. Ze behandelen tijdeenheid consistent, rekening houdend met zaken als schrikkeljaren en de veranderingen rond zomertijd, wat anders een echte hoofdpijn kan zijn.

Zie ook