Een datum uit een string parsen

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:

  1. Uitzonderingen afhandelt.
  2. Werkt met verschillende kalenders.
  3. Tijdzonebewust is.
  4. 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.

Zie Ook