get_date_from_gmt( string $date_string, string $format = 'Y-m-d H:i:s' ): string

Given a date in UTC or GMT timezone, returns that date in the timezone of the site.


Requires a date in the Y-m-d H:i:s format.
Default return format of ‘Y-m-d H:i:s’ can be overridden using the $format parameter.

Top ↑


$date_string string Required
The date to be converted, in UTC or GMT timezone.
$format string Optional
The format string for the returned date.

Default: 'Y-m-d H:i:s'

Top ↑


string Formatted version of the date, in the site's timezone.

Top ↑


File: wp-includes/formatting.php. View all references

function get_date_from_gmt( $date_string, $format = 'Y-m-d H:i:s' ) {
	$datetime = date_create( $date_string, new DateTimeZone( 'UTC' ) );

	if ( false === $datetime ) {
		return gmdate( $format, 0 );

	return $datetime->setTimezone( wp_timezone() )->format( $format );

Top ↑


Version Description
1.2.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by d4mation

    get_date_from_gmt() does not accept a Unix Timestamp because date_create() doesn’t.

    If you need to provide a Unix Timestamp, you will need to convert it to a different format first like the following example:

    $utc_timestamp = 1623096269;
    // This is a format that date_create() will accept
    $utc_timestamp_converted = date( 'Y-m-d H:i:s', $utc_timestamp );
    $output_format = 'Y-m-d H:i:s';
    // Now we can use our timestamp with get_date_from_gmt()
    $local_timestamp = get_date_from_gmt( $utc_timestamp_converted, $output_format );

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