function get_gmt_from_date($string, $format = 'Y-m-d H:i:s') {}

Returns a date in the GMT equivalent.
Requires and returns a date in the Y-m-d H:i:s format. Simply subtracts the value of the ‘gmt_offset’ option. Return format can be overridden using the $format parameter. The DateTime and DateTimeZone classes are used to respect time zone differences in DST.


  • string $string: The date to be converted.
  • string $format: The format string for the returned date (default is Y-m-d H:i:s)

Return values

returns:GMT version of the date provided.

Source code

function get_gmt_from_date($string, $format = 'Y-m-d H:i:s') {

	preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $string, $matches);

	$tz = get_option('timezone_string');

	if ( $tz ) {

		date_default_timezone_set( $tz );

		$datetime = new DateTime( $string );

		$datetime->setTimezone( new DateTimeZone('UTC') );

		$offset = $datetime->getOffset();

		$datetime->modify( '+' . $offset / 3600 . ' hours');

		$string_gmt = gmdate($format, $datetime->format('U'));


	} else {

		$string_time = gmmktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);

		$string_gmt = gmdate($format, $string_time - get_option('gmt_offset') * 3600);


	return $string_gmt;



No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: