diff --git a/ChangeLog b/ChangeLog index 560c5ff499..f368a9ea6f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,7 @@ phpMyAdmin - ChangeLog - issue #16851 Fix ($cfg['Order']) default column order doesn't have have any effect since phpMyAdmin 4.2.0 - issue #18112 Fix open base dir warning on git version class - issue Do not show "Original length undefined" on binary hex columns +- issue Fix wrong time zone when handling Git information 5.2.1 (2023-02-07) - issue #17522 Fix case where the routes cache file is invalid diff --git a/libraries/classes/Git.php b/libraries/classes/Git.php index 940db6ffc7..feb3bd54e7 100644 --- a/libraries/classes/Git.php +++ b/libraries/classes/Git.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace PhpMyAdmin; +use DateTimeImmutable; +use DateTimeZone; use DirectoryIterator; use PhpMyAdmin\Utils\HttpRequest; use stdClass; @@ -13,7 +15,6 @@ use function array_shift; use function basename; use function bin2hex; use function count; -use function date; use function explode; use function fclose; use function file_exists; @@ -384,14 +385,14 @@ class Git $user = $datalinearr[1]; preg_match('/([^<]+)<([^>]+)> ([0-9]+)( [^ ]+)?/', $user, $user); + $timezone = new DateTimeZone($user[4] ?? '+0000'); + $date = (new DateTimeImmutable())->setTimestamp((int) $user[3])->setTimezone($timezone); + $user2 = [ 'name' => trim($user[1]), 'email' => trim($user[2]), - 'date' => date('Y-m-d H:i:s', (int) $user[3]), + 'date' => $date->format('Y-m-d H:i:s O'), ]; - if (isset($user[4])) { - $user2['date'] .= $user[4]; - } if ($linetype === 'author') { $author = $user2; diff --git a/test/classes/GitTest.php b/test/classes/GitTest.php index f9e9ac4264..47f42b34ed 100644 --- a/test/classes/GitTest.php +++ b/test/classes/GitTest.php @@ -468,12 +468,12 @@ class GitTest extends AbstractTestCase [ 'name' => 'William Desportes', 'email' => 'williamdes@wdes.fr', - 'date' => '2022-07-13 12:56:40 +0200', + 'date' => '2022-07-13 14:56:40 +0200', ], [ 'name' => 'William Desportes', 'email' => 'williamdes@wdes.fr', - 'date' => '2022-07-13 12:56:40 +0200', + 'date' => '2022-07-13 14:56:40 +0200', ], 'Remove ignore config.inc.php for psalm because ' . 'it fails the CI Signed-off-by: William Desportes ',