iso8601_to_datetime( string $date_string, string $timezone = 'user' ): string|false

In this article

Given an ISO 8601 (Ymd\TH:i:sO) date, returns a MySQL DateTime (Y-m-d H:i:s) format used by post_date[_gmt].

Parameters

$date_stringstringrequired
Date and time in ISO 8601 format https://en.wikipedia.org/wiki/ISO_8601.
$timezonestringoptional
If set to 'gmt' returns the result in UTC. Default 'user'.

Default:'user'

Return

string|false The date and time in MySQL DateTime format – Y-m-d H:i:s, or false on failure.

Source

function iso8601_to_datetime( $date_string, $timezone = 'user' ) {	$timezone = strtolower( $timezone );	$wp_timezone = wp_timezone();	$datetime = date_create( $date_string, $wp_timezone ); // Timezone is ignored if input has one.	if ( false === $datetime ) {	return false;	}	if ( 'gmt' === $timezone ) {	return $datetime->setTimezone( new DateTimeZone( 'UTC' ) )->format( 'Y-m-d H:i:s' );	}	if ( 'user' === $timezone ) {	return $datetime->setTimezone( $wp_timezone )->format( 'Y-m-d H:i:s' );	}	return false; } 

Changelog

VersionDescription
1.5.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.