From 7093afeb6ff9b460aaabfe1f22ff8f8c8a7e1417 Mon Sep 17 00:00:00 2001 From: EnesSacid-Buker <73346401+EnesSacid-Buker@users.noreply.github.com> Date: Thu, 16 Feb 2023 13:08:02 +0300 Subject: [PATCH] Code refactoring --- app/Traits/DateTime.php | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/app/Traits/DateTime.php b/app/Traits/DateTime.php index f0e359a30..cf653e26a 100644 --- a/app/Traits/DateTime.php +++ b/app/Traits/DateTime.php @@ -2,11 +2,9 @@ namespace App\Traits; -use Date; -use DateTimeZone; -use Illuminate\Support\Str; -use Carbon\CarbonPeriod; use App\Traits\SearchString; +use App\Utilities\Date; +use Carbon\CarbonPeriod; trait DateTime { @@ -61,13 +59,24 @@ trait DateTime public function getTimezones() { - return collect(DateTimeZone::listIdentifiers()) - ->mapWithKeys(function ($timezone) { - return [$timezone => Str::after($timezone, '/')]; - }) - ->groupBy(function ($item, $key) { - return Str::before($key, '/'); - }, preserveKeys: true); + // The list of available timezone groups to use. + $use_zones = ['Africa', 'America', 'Antarctica', 'Arctic', 'Asia', 'Atlantic', 'Australia', 'Europe', 'Indian', 'Pacific']; + + // Get the list of time zones from the server. + $zones = \DateTimeZone::listIdentifiers(); + + return collect($zones) + ->mapWithKeys(function ($timezone) use ($use_zones) { + if (! in_array(str($timezone)->before('/'), $use_zones)) { + return []; + } + + return [$timezone => str($timezone)->after('/')->value()]; + }) + ->groupBy(function ($item, $key) { + return str($key)->before('/')->value(); + }, preserveKeys: true) + ->toArray(); } public function getFinancialStart($year = null)