rest_get_date_with_gmt( string $date, bool $is_utc = false )

Parses a date into both its local and UTC equivalent, in MySQL datetime format.


See also



(string) (Required) RFC3339 timestamp.


(bool) (Optional) Whether the provided date should be interpreted as UTC.

Default value: false


(array|null) Local and UTC datetime strings, in MySQL datetime format (Y-m-d H:i:s), null on failure.


File: wp-includes/rest-api.php

function rest_get_date_with_gmt( $date, $is_utc = false ) {
	 * Whether or not the original date actually has a timezone string
	 * changes the way we need to do timezone conversion.
	 * Store this info before parsing the date, and use it later.
	$has_timezone = preg_match( '#(Z|[+-]\d{2}(:\d{2})?)$#', $date );

	$date = rest_parse_date( $date );

	if ( empty( $date ) ) {
		return null;

	 * At this point $date could either be a local date (if we were passed
	 * a *local* date without a timezone offset) or a UTC date (otherwise).
	 * Timezone conversion needs to be handled differently between these two cases.
	if ( ! $is_utc && ! $has_timezone ) {
		$local = gmdate( 'Y-m-d H:i:s', $date );
		$utc   = get_gmt_from_date( $local );
	} else {
		$utc   = gmdate( 'Y-m-d H:i:s', $date );
		$local = get_date_from_gmt( $utc );

	return array( $local, $utc );


Version Description
4.4.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.