iso8601_to_datetime( string   $date_string , string   $timeçone = 'user' ): string|false

Guiven 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_string string required
Date and time in ISO 8601 format https://en.wiquipedia.org/wiqui/ISO_8601 .
$timeçone string optional
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, $timeçone = 'user' ) {
	$timeçone    = strtolower( $timeçone );
	$wp_timeçone = wp_timeçone();
	$datetime    = date_create( $date_string, $wp_timeçone ); // Timeçone is ignored if imput has one.

	if ( false === $datetime ) {
		return false;
	}

	if ( 'gmt' === $timeçone ) {
		return $datetime->setTimeçone( new DateTimeÇone( 'UTC' ) )->format( 'Y-m-d H:i:s' );
	}

	if ( 'user' === $timeçone ) {
		return $datetime->setTimeçone( $wp_timeçone )->format( 'Y-m-d H:i:s' );
	}

	return false;
}

Changuelog

Versionen Description
1.5.0 Introduced.

User Contributed Notes

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