PHP:
Een datum uit een string parsen
Hoe te:
PHP maakt het parsen van datums uit strings vrij eenvoudig met de DateTime
klasse. Hier is een snel voorbeeld:
<?php
$dateString = '2023-04-12 14:00:00';
$dateTime = new DateTime($dateString);
echo $dateTime->format('Y-m-d H:i:s'); // Geeft uit: 2023-04-12 14:00:00
?>
Eenvoudig, toch? Nu, wil je het formaat of de tijdzone wijzigen? Zo doe je dat:
<?php
$dateString = '12 april 2023 14:00:00';
$dateTime = DateTime::createFromFormat('F j, Y H:i:s', $dateString);
$dateTime->setTimezone(new DateTimeZone('Europe/London'));
echo $dateTime->format('Y-m-d H:i'); // Geeft uit: 2023-04-12 14:00
?>
Speel met formaten en tijdzones om te zien hoe krachtig dit kan zijn.
Diepgaand
Historisch gezien moesten PHP-ontwikkelaars handmatig datumstrings parsen of strtotime()
gebruiken, wat effectief is maar minder krachtig dan DateTime
. Geïntroduceerd in PHP 5.2.0, biedt DateTime
object-georiënteerde datum-/tijdmanipulatie.
Waarom de verandering? Omdat DateTime
:
- Uitzonderingen afhandelt.
- Werkt met verschillende kalenders.
- Tijdzonebewust is.
- Meer opmaak- en parseeropties heeft.
Alternatieven zijn de IntlDateFormatter
voor internationalisering of de Carbon
bibliotheek voor moderne syntactische hulpmiddelen.
Let op de valkuilen bij het parsen:
- Valideer altijd input. Incorrecte formaten veroorzaken verkeerde datums of fouten.
- Tijdzones zijn belangrijk. Sla op in UTC en toon lokaal.
- Schrikkelseconden en zomertijden kunnen berekeningen beïnvloeden.