Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@ahmadreza1383
Copy link
Contributor

I found a bug in the project.

The timezone for the project is set to Asia/Tehran:

DB_TIMEZONE=Asia/Tehran
APP_TIMEZONE=Asia/Tehran

The Tehran timezone is GMT+3:30. However, in the app/Helpers/DateHelper.php file, for the fresnsDateTimeByTimezone() method, if the timezone is retrieved, it will return the value 3.5.

This causes an exception when using new DateTimeZone(). For example, Etc/GMT-4 works fine, but Etc/GMT-3.5 will throw an error.

[2024-12-02 14:04:40] production.ERROR: DateTimeZone::__construct(): Unknown or bad timezone (Etc/GMT-3.5) {"exception":"[object] (Exception(code: 0): DateTimeZone::__construct(): Unknown or bad timezone (Etc/GMT-3.5) at /mnt/part1/projects/laravel/contribute/fresns/app/Helpers/DateHelper.php:169)
[stacktrace]
#0 /mnt/part1/projects/laravel/contribute/fresns/app/Helpers/DateHelper.php(169): DateTimeZone->__construct()
#1 /mnt/part1/projects/laravel/contribute/fresns/app/Utilities/DetailUtility.php(1646): App\\Helpers\\DateHelper::fresnsDateTimeByTimezone()
#2 /mnt/part1/projects/laravel/contribute/fresns/app/Utilities/DetailUtility.php(218): App\\Utilities\\DetailUtility::handleUserDate()
#3 /mnt/part1/projects/laravel/contribute/fresns/app/Utilities/DetailUtility.php(84): App\\Utilities\\DetailUtility::userDetail()
#4 /mnt/part1/projects/laravel/contribute/fresns/app/Fresns/Api/Http/Controllers/AccountController.php(172): App\\Utilities\\DetailUtility::accountDetail()
#5 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Fresns\\Api\\Http\\Controllers\\AccountController->login()
#6 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction()
#7 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/Route.php(265): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#8 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/Route.php(211): Illuminate\\Routing\\Route->runController()
#9 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\\Routing\\Route->run()
#10 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#11 /mnt/part1/projects/laravel/contribute/fresns/app/Fresns/Api/Http/Middleware/CheckReadOnly.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#12 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\\Fresns\\Api\\Http\\Middleware\\CheckReadOnly->handle()
#13 /mnt/part1/projects/laravel/contribute/fresns/app/Fresns/Api/Http/Middleware/CheckHeaderByWhitelist.php(77): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): App\\Fresns\\Api\\Http\\Middleware\\CheckHeaderByWhitelist->handle()
#15 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\\Pipeline\\Pipeline->then()
#17 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\\Routing\\Router->runRouteWithinStack()
#18 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\\Routing\\Router->runRoute()
#19 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\\Routing\\Router->dispatchToRoute()
#20 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(201): Illuminate\\Routing\\Router->dispatch()
#21 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#22 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#24 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#25 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#27 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#28 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#29 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#30 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#32 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(62): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\HandleCors->handle()
#34 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#36 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php(22): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks->handle()
#38 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Pipeline\\Pipeline->then()
#40 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#41 /mnt/part1/projects/laravel/contribute/fresns/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1190): Illuminate\\Foundation\\Http\\Kernel->handle()
#42 /mnt/part1/projects/laravel/contribute/fresns/public/index.php(17): Illuminate\\Foundation\\Application->handleRequest()
#43 {main}
"} 

This PR addresses the issue and allows handling non-rounded timezones.

@ahmadreza1383 ahmadreza1383 force-pushed the fix-datetime-by-timezone branch from 8cee8a8 to 1277b52 Compare December 2, 2024 10:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants