Revert part of [17920]. Support for empty tz must remain. Props johnjamesjacoby. fixes #17448

git-svn-id: http://svn.automattic.com/wordpress/trunk@17958 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2011-05-18 18:56:42 +00:00
parent 9c7fce4ed5
commit b2c2e302be

View File

@ -1588,7 +1588,8 @@ function _wp_iso_convert( $match ) {
* *
* Requires and returns a date in the Y-m-d H:i:s format. Simply subtracts the * 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 * value of the 'gmt_offset' option. Return format can be overridden using the
* $format parameter. * $format parameter. The DateTime and DateTimeZone classes are used to respect
* time zone differences in DST.
* *
* @since 1.2.0 * @since 1.2.0
* *
@ -1600,13 +1601,19 @@ function _wp_iso_convert( $match ) {
function get_gmt_from_date($string, $format = 'Y-m-d H:i:s') { 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); 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'); $tz = get_option('timezone_string');
date_default_timezone_set( $tz ); if ( $tz ) {
$datetime = new DateTime( $string ); date_default_timezone_set( $tz );
$datetime->setTimezone( new DateTimeZone('UTC') ); $datetime = new DateTime( $string );
$offset = $datetime->getOffset(); $datetime->setTimezone( new DateTimeZone('UTC') );
$datetime->modify( '+' . $offset / 3600 . ' hours'); $offset = $datetime->getOffset();
$string_gmt = gmdate($format, $datetime->format('U')); $datetime->modify( '+' . $offset / 3600 . ' hours');
date_default_timezone_set('UTC'); $string_gmt = gmdate($format, $datetime->format('U'));
date_default_timezone_set('UTC');
} 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; return $string_gmt;
} }