diff --git a/app/Foundation/Providers/ConfigServiceProvider.php b/app/Foundation/Providers/ConfigServiceProvider.php index 28b6cf66..42d6c330 100644 --- a/app/Foundation/Providers/ConfigServiceProvider.php +++ b/app/Foundation/Providers/ConfigServiceProvider.php @@ -14,9 +14,9 @@ namespace CachetHQ\Cachet\Foundation\Providers; use CachetHQ\Cachet\Models\Setting as SettingModel; use CachetHQ\Cachet\Settings\Cache; use CachetHQ\Cachet\Settings\Repository; -use Carbon\Carbon; use Exception; use Illuminate\Support\ServiceProvider; +use Jenssegers\Date\Date; /** * This is the config service provider class. @@ -67,7 +67,7 @@ class ConfigServiceProvider extends ServiceProvider if ($appLocale = $this->app->config->get('setting.app_locale')) { $this->app->config->set('app.locale', $appLocale); $this->app->translator->setLocale($appLocale); - Carbon::setLocale($appLocale); + Date::setLocale($appLocale); } // Set the timezone. diff --git a/app/Http/Controllers/Dashboard/DashboardController.php b/app/Http/Controllers/Dashboard/DashboardController.php index 590b6e4e..13f4d2d9 100644 --- a/app/Http/Controllers/Dashboard/DashboardController.php +++ b/app/Http/Controllers/Dashboard/DashboardController.php @@ -17,12 +17,12 @@ use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\ComponentGroup; use CachetHQ\Cachet\Models\Incident; use CachetHQ\Cachet\Models\Subscriber; -use Carbon\Carbon; use Illuminate\Contracts\Auth\Guard; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\View; +use Jenssegers\Date\Date; /** * This is the dashboard controller class. @@ -34,7 +34,7 @@ class DashboardController extends Controller /** * Start date. * - * @var \Carbon\Carbon + * @var \Jenssegers\Date\Date */ protected $startDate; @@ -71,7 +71,7 @@ class DashboardController extends Controller { $this->feed = $feed; $this->guard = $guard; - $this->startDate = Carbon::now(); + $this->startDate = new Date(); $this->dateTimeZone = Config::get('cachet.timezone'); } @@ -131,13 +131,13 @@ class DashboardController extends Controller $this->startDate->copy()->subDays(30)->format('Y-m-d').' 00:00:00', $this->startDate->format('Y-m-d').' 23:59:59', ])->orderBy('occurred_at', 'desc')->get()->groupBy(function (Incident $incident) { - return (new Carbon($incident->occurred_at)) + return (new Date($incident->occurred_at)) ->setTimezone($this->dateTimeZone)->toDateString(); }); // Add in days that have no incidents foreach (range(0, 30) as $i) { - $date = (new Carbon($this->startDate))->setTimezone($this->dateTimeZone)->subDays($i); + $date = (new Date($this->startDate))->setTimezone($this->dateTimeZone)->subDays($i); if (!isset($allIncidents[$date->toDateString()])) { $allIncidents[$date->toDateString()] = []; @@ -163,13 +163,13 @@ class DashboardController extends Controller $this->startDate->copy()->subDays(30)->format('Y-m-d').' 00:00:00', $this->startDate->format('Y-m-d').' 23:59:59', ])->orderBy('created_at', 'desc')->get()->groupBy(function (Subscriber $incident) { - return (new Carbon($incident->created_at)) + return (new Date($incident->created_at)) ->setTimezone($this->dateTimeZone)->toDateString(); }); // Add in days that have no incidents foreach (range(0, 30) as $i) { - $date = (new Carbon($this->startDate))->setTimezone($this->dateTimeZone)->subDays($i); + $date = (new Date($this->startDate))->setTimezone($this->dateTimeZone)->subDays($i); if (!isset($allSubscribers[$date->toDateString()])) { $allSubscribers[$date->toDateString()] = []; diff --git a/app/Http/Controllers/StatusPageController.php b/app/Http/Controllers/StatusPageController.php index 78a8ae39..8a746d7d 100644 --- a/app/Http/Controllers/StatusPageController.php +++ b/app/Http/Controllers/StatusPageController.php @@ -19,7 +19,6 @@ use CachetHQ\Cachet\Models\Metric; use CachetHQ\Cachet\Models\Schedule; use CachetHQ\Cachet\Repositories\Metric\MetricRepository; use CachetHQ\Cachet\Services\Dates\DateFactory; -use Carbon\Carbon; use Exception; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; @@ -27,6 +26,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Response; use Illuminate\Support\Facades\View; +use Jenssegers\Date\Date; use McCool\LaravelAutoPresenter\Facades\AutoPresenter; /** @@ -45,14 +45,14 @@ class StatusPageController extends AbstractApiController */ public function showIndex() { - $today = Carbon::now(); - $startDate = Carbon::now(); + $today = Date::now(); + $startDate = Date::now(); // Check if we have another starting date if (Binput::has('start_date')) { try { // If date provided is valid - $oldDate = Carbon::createFromFormat('Y-m-d', Binput::get('start_date')); + $oldDate = Date::createFromFormat('Y-m-d', Binput::get('start_date')); // If trying to get a future date fallback to today if ($today->gt($oldDate)) { diff --git a/app/Http/Middleware/Localize.php b/app/Http/Middleware/Localize.php index 02a5434a..2c65f82b 100644 --- a/app/Http/Middleware/Localize.php +++ b/app/Http/Middleware/Localize.php @@ -12,10 +12,10 @@ namespace CachetHQ\Cachet\Http\Middleware; use CachetHQ\Cachet\Settings\Repository as SettingsRepository; -use Carbon\Carbon; use Closure; use Illuminate\Contracts\Config\Repository as ConfigRepository; use Illuminate\Http\Request; +use Jenssegers\Date\Date; /** * This is the localize middleware class. @@ -82,7 +82,7 @@ class Localize } app('translator')->setLocale($userLanguage); - Carbon::setLocale($userLanguage); + Date::setLocale($userLanguage); return $next($request); } diff --git a/app/Repositories/Metric/PgSqlRepository.php b/app/Repositories/Metric/PgSqlRepository.php index e04e8f81..feec9d84 100644 --- a/app/Repositories/Metric/PgSqlRepository.php +++ b/app/Repositories/Metric/PgSqlRepository.php @@ -13,6 +13,7 @@ namespace CachetHQ\Cachet\Repositories\Metric; use CachetHQ\Cachet\Models\Metric; use Illuminate\Support\Facades\DB; +use Jenssegers\Date\Date; /** * This is the pgsql repository class. diff --git a/app/Repositories/Metric/SqliteRepository.php b/app/Repositories/Metric/SqliteRepository.php index ca1686eb..5d9c751d 100644 --- a/app/Repositories/Metric/SqliteRepository.php +++ b/app/Repositories/Metric/SqliteRepository.php @@ -13,6 +13,7 @@ namespace CachetHQ\Cachet\Repositories\Metric; use CachetHQ\Cachet\Models\Metric; use Illuminate\Support\Facades\DB; +use Jenssegers\Date\Date; /** * This is the sqlite repository class. diff --git a/app/Services/Dates/DateFactory.php b/app/Services/Dates/DateFactory.php index 3cb725e8..4ccbcb49 100644 --- a/app/Services/Dates/DateFactory.php +++ b/app/Services/Dates/DateFactory.php @@ -11,8 +11,8 @@ namespace CachetHQ\Cachet\Services\Dates; -use Carbon\Carbon; use DateTimeZone; +use Jenssegers\Date\Date; /** * This is the date factory class. @@ -62,7 +62,7 @@ class DateFactory */ public function create($format, $time) { - return Carbon::createFromFormat($format, $time, $this->cachetTimezone)->setTimezone($this->appTimezone); + return Date::createFromFormat($format, $time, $this->cachetTimezone)->setTimezone($this->appTimezone); } /** @@ -79,7 +79,7 @@ class DateFactory */ public function createNormalized($format, $time) { - return Carbon::createFromFormat($format, $time)->setTimezone($this->appTimezone); + return Date::createFromFormat($format, $time)->setTimezone($this->appTimezone); } /** @@ -93,7 +93,7 @@ class DateFactory */ public function make($time = null) { - return Carbon::parse($time)->setTimezone($this->cachetTimezone); + return (new Date($time))->setTimezone($this->cachetTimezone); } /** @@ -103,7 +103,7 @@ class DateFactory */ public function getTimezone() { - $dateTime = new Carbon(); + $dateTime = new Date(); $dateTime->setTimeZone(new DateTimeZone($this->cachetTimezone)); return $dateTime->format('T'); diff --git a/app/helpers.php b/app/helpers.php index c82dea60..dce60191 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -use Carbon\Carbon; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Request; +use Jenssegers\Date\Date; if (!function_exists('set_active')) { /** @@ -47,7 +47,7 @@ if (!function_exists('formatted_date')) { { $dateFormat = Config::get('setting.date_format', 'jS F Y'); - return Carbon::parse($date)->format($dateFormat); + return (new Date($date))->format($dateFormat); } } diff --git a/composer.json b/composer.json index 99f6babf..96f318a2 100644 --- a/composer.json +++ b/composer.json @@ -44,6 +44,7 @@ "graham-campbell/exceptions": "^9.1", "graham-campbell/markdown": "^7.1", "guzzlehttp/guzzle": "^6.2.1", + "jenssegers/date": "^3.2", "laravel/framework": "5.3.*", "mccool/laravel-auto-presenter": "^4.3", "nexmo/client": "@beta", diff --git a/config/app.php b/config/app.php index 4f5255de..280139b6 100644 --- a/config/app.php +++ b/config/app.php @@ -185,6 +185,7 @@ return [ GrahamCampbell\Core\CoreServiceProvider::class, GrahamCampbell\Markdown\MarkdownServiceProvider::class, GrahamCampbell\Security\SecurityServiceProvider::class, + Jenssegers\Date\DateServiceProvider::class, McCool\LaravelAutoPresenter\AutoPresenterServiceProvider::class, PragmaRX\Google2FA\Vendor\Laravel\ServiceProvider::class, Roumen\Feed\FeedServiceProvider::class,