diff --git a/lib/Config/Env.php b/lib/Config/Env.php index a64c8e48bd..ec43e0a41a 100644 --- a/lib/Config/Env.php +++ b/lib/Config/Env.php @@ -26,6 +26,7 @@ class Env { static $db_username; static $db_password; static $db_charset; + static $db_timezone_offset; static function init($file, $version) { global $wpdb; @@ -58,6 +59,7 @@ class Env { self::$db_password = DB_PASSWORD; self::$db_charset = $wpdb->get_charset_collate(); self::$db_source_name = self::dbSourceName(self::$db_host, self::$db_socket, self::$db_port); + self::$db_timezone_offset = self::getDbTimezoneOffset(); } private static function dbSourceName($host, $socket, $port) { @@ -73,4 +75,13 @@ class Env { ); return implode('', $source_name); } + + private static function getDbTimezoneOffset() { + $mins = get_option('gmt_offset') * 60; + $sgn = ($mins < 0 ? -1 : 1); + $mins = abs($mins); + $hrs = floor($mins / 60); + $mins -= $hrs * 60; + return sprintf('%+d:%02d', $hrs * $sgn, $mins); + } } \ No newline at end of file diff --git a/lib/Config/Initializer.php b/lib/Config/Initializer.php index 091312ca40..f325dc4020 100644 --- a/lib/Config/Initializer.php +++ b/lib/Config/Initializer.php @@ -65,7 +65,8 @@ class Initializer { \ORM::configure('driver_options', array( \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', - \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET TIME_ZONE = "+00:00"' + \PDO::MYSQL_ATTR_INIT_COMMAND => + 'SET TIME_ZONE = "' . Env::$db_timezone_offset. '"' )); $subscribers = Env::$db_prefix . 'subscribers';