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.


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

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


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


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 );



User Contributed Notes

  1. Skip to note 2 content

    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.