Bij gebruik van strotime()
je moet ervoor zorgen dat je een geldig datetime-formaat
gebruikt . Anders strtotime()
retourneert false
of u een onverwachte waarde geven.
Datums met het XX/XX/XXXX-formaat worden verondersteld in het Amerikaanse formaat te zijn, wat betekent dat de eerste twee cijfers de maand vertegenwoordigen, de volgende twee cijfers de dag van de maand en de laatste vier cijfers het jaar. Wanneer streepjes worden gebruikt, wordt aangenomen dat de datums in Europees formaat zijn. Bijvoorbeeld:
04/18/2017 = April 18, 2017
12/18/2017 = December 18, 2017
18-04-2017 = April 18, 2017
18-12-2017 = December 18, 2017
Als u per ongeluk de dag en maand verandert strtotime()
zal false retourneren omdat de datum ongeldig is.
18/04/2017 // error
18/12/2017 // error
04-18-2018 // error
12-18-2017 // error
Bovenstaande voorbeelden zijn rechttoe rechtaan. Maar u kunt problemen tegenkomen wanneer de datums dubbelzinnig kunnen zijn. Bijvoorbeeld:
04/12/2017 = April 12, 2017
12/04/2017 = December 4, 2017
04-12-2017 = December 4, 2017
12-04-2017 = April 12, 2017
In de bovenstaande voorbeelden krijgen we door de dag en maand om te schakelen nog steeds geldige datums die onverwachte resultaten in uw aanvraag kunnen veroorzaken. Om deze mogelijke problemen op te lossen, wordt aanbevolen om DateTime::createFromFormat()
om de datumadvertentie te ontleden, retourneer een DateTime()
object waarvan je een Unix Timestamp kunt krijgen
, converteer de datum naar een ander formaat
, of gebruik het om te vergelijken met andere DateTime
objecten.
// Parse US date format
$date1 = DateTime::createFromFormat('m/d/Y', '04/18/2017');
// Get Unix timestamp of 1493581268
$timestamp = $date1->getTimestamp();
// Parse European date format
$date2 = DateTime::createFromFormat('d-m-Y', ''18-04-2017);
// Get MySQL format (ISO-8601) of 2017-04-18
$mysqlDate = $date2->format('Y-m-d');
Zie ook:
Voor uw specifieke geval zal de volgende code werken:
$date = $date1 = DateTime::createFromFormat('m/d/Y', '20/02/2000');
$D->query = $date->format('Y-m-d'); // 2000-02-20