diff --git a/wp-includes/functions.php b/wp-includes/functions.php index 3c4a301298..b4df760ec6 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -138,6 +138,36 @@ function date_i18n( $dateformatstring, $timestamp_with_offset = false, $gmt = fa $dateformatstring = substr( $dateformatstring, 1, strlen( $dateformatstring ) - 1 ); } } + } else { + $offset = get_option( 'gmt_offset' ); + foreach ( $timezone_formats as $timezone_format ) { + if ( 'I' === $timezone_format ) { + continue; + } + + if ( false !== strpos( $dateformatstring, $timezone_format ) ) { + if ( 'Z' === $timezone_format ) { + $formatted = (string) ( $offset * HOUR_IN_SECONDS ); + } else { + $prefix = ''; + $hours = (int) $offset; + $separator = ''; + $minutes = abs( ( $offset - $hours ) * 60 ); + + if ( 'T' === $timezone_format ) { + $prefix = 'GMT'; + } elseif ( 'e' === $timezone_format || 'P' === $timezone_format ) { + $separator = ':'; + } + + $formatted = sprintf( '%s%+03d%s%02d', $prefix, $hours, $separator, $minutes ); + } + + $dateformatstring = ' ' . $dateformatstring; + $dateformatstring = preg_replace( "/([^\\\])$timezone_format/", "\\1" . backslashit( $formatted ), $dateformatstring ); + $dateformatstring = substr( $dateformatstring, 1 ); + } + } } } $j = @date( $dateformatstring, $i ); diff --git a/wp-includes/version.php b/wp-includes/version.php index a3ec2ae679..906ec8a339 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '5.0-alpha-43386'; +$wp_version = '5.0-alpha-43387'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.