From 4923a59b7671616c957276788627176652141cd1 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Tue, 2 Feb 2016 20:35:31 +0000 Subject: [PATCH] Working on datetime mess --- app/Dates/DateFactory.php | 14 +++++++++++ app/Presenters/IncidentPresenter.php | 29 ++++++++--------------- app/Presenters/SubscriberPresenter.php | 6 ++--- app/Presenters/Traits/TimestampsTrait.php | 12 ++++------ 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/app/Dates/DateFactory.php b/app/Dates/DateFactory.php index 588016ef..47b6240d 100644 --- a/app/Dates/DateFactory.php +++ b/app/Dates/DateFactory.php @@ -74,4 +74,18 @@ class DateFactory { return Date::createFromFormat($format, $time)->setTimezone($this->appTimezone); } + + /** + * Make a Carbon instance from a string. + * + * @param string $time + * + * @throws \InvalidArgumentException + * + * @return \Carbon\Carbon + */ + public function make($time) + { + return (new Date($time))->setTimezone($this->cachetTimezone); + } } diff --git a/app/Presenters/IncidentPresenter.php b/app/Presenters/IncidentPresenter.php index 05ae6dee..1db4e35b 100644 --- a/app/Presenters/IncidentPresenter.php +++ b/app/Presenters/IncidentPresenter.php @@ -11,11 +11,11 @@ namespace CachetHQ\Cachet\Presenters; +use CachetHQ\Cachet\Dates\DateFactory; use CachetHQ\Cachet\Presenters\Traits\TimestampsTrait; use GrahamCampbell\Markdown\Facades\Markdown; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Support\Facades\Config; -use Jenssegers\Date\Date; use McCool\LaravelAutoPresenter\BasePresenter; class IncidentPresenter extends BasePresenter implements Arrayable @@ -39,9 +39,7 @@ class IncidentPresenter extends BasePresenter implements Arrayable */ public function created_at_diff() { - return (new Date($this->wrappedObject->created_at)) - ->setTimezone(Config::get('cachet.timezone')) - ->diffForHumans(); + return app(DateFactory::class)->make($this->wrappedObject->created_at)->diffForHumans(); } /** @@ -51,9 +49,7 @@ class IncidentPresenter extends BasePresenter implements Arrayable */ public function created_at_formatted() { - return ucfirst((new Date($this->wrappedObject->created_at)) - ->setTimezone(Config::get('cachet.timezone')) - ->format(Config::get('setting.incident_date_format', 'l jS F Y H:i:s'))); + return ucfirst(app(DateFactory::class)->make($this->wrappedObject->created_at)->format(Config::get('setting.incident_date_format', 'l jS F Y H:i:s'))); } /** @@ -83,8 +79,7 @@ class IncidentPresenter extends BasePresenter implements Arrayable */ public function scheduled_at() { - return (new Date($this->wrappedObject->scheduled_at)) - ->setTimezone(Config::get('cachet.timezone'))->toDateTimeString(); + return app(DateFactory::class)->make($this->wrappedObject->scheduled_at)->toDateTimeString(); } /** @@ -94,9 +89,7 @@ class IncidentPresenter extends BasePresenter implements Arrayable */ public function scheduled_at_diff() { - return (new Date($this->wrappedObject->scheduled_at)) - ->setTimezone(Config::get('cachet.timezone')) - ->diffForHumans(); + return app(DateFactory::class)->make($this->wrappedObject->scheduled_at)->diffForHumans(); } /** @@ -106,9 +99,7 @@ class IncidentPresenter extends BasePresenter implements Arrayable */ public function scheduled_at_formatted() { - return ucfirst((new Date($this->wrappedObject->scheduled_at)) - ->setTimezone(Config::get('cachet.timezone')) - ->format(Config::get('setting.incident_date_format', 'l jS F Y H:i:s'))); + return ucfirst(app(DateFactory::class)->make($this->wrappedObject->created_at)->format(Config::get('setting.incident_date_format', 'l jS F Y H:i:s'))); } /** @@ -140,9 +131,9 @@ class IncidentPresenter extends BasePresenter implements Arrayable { if ($this->wrappedObject->is_scheduled) { return $this->scheduled_at_formatted; - } else { - return $this->created_at_formatted; } + + return $this->created_at_formatted; } /** @@ -154,9 +145,9 @@ class IncidentPresenter extends BasePresenter implements Arrayable { if ($this->wrappedObject->is_scheduled) { return $this->scheduled_at_iso; - } else { - return $this->created_at_iso; } + + return $this->created_at_iso; } /** diff --git a/app/Presenters/SubscriberPresenter.php b/app/Presenters/SubscriberPresenter.php index 87b3be4e..adf970b5 100644 --- a/app/Presenters/SubscriberPresenter.php +++ b/app/Presenters/SubscriberPresenter.php @@ -11,10 +11,9 @@ namespace CachetHQ\Cachet\Presenters; +use CachetHQ\Cachet\Dates\DateFactory; use CachetHQ\Cachet\Presenters\Traits\TimestampsTrait; use Illuminate\Contracts\Support\Arrayable; -use Illuminate\Support\Facades\Config; -use Jenssegers\Date\Date; use McCool\LaravelAutoPresenter\BasePresenter; class SubscriberPresenter extends BasePresenter implements Arrayable @@ -28,8 +27,7 @@ class SubscriberPresenter extends BasePresenter implements Arrayable */ public function verified_at() { - return (new Date($this->wrappedObject->verified_at)) - ->setTimezone(Config::get('cachet.timezone'))->toDateTimeString(); + return app(DateFactory::class)->make($this->wrappedObject->verified_at)->toDateTimeString(); } /** diff --git a/app/Presenters/Traits/TimestampsTrait.php b/app/Presenters/Traits/TimestampsTrait.php index 655e37ba..eba58b2a 100644 --- a/app/Presenters/Traits/TimestampsTrait.php +++ b/app/Presenters/Traits/TimestampsTrait.php @@ -11,8 +11,7 @@ namespace CachetHQ\Cachet\Presenters\Traits; -use Illuminate\Support\Facades\Config; -use Jenssegers\Date\Date; +use CachetHQ\Cachet\Dates\DateFactory; trait TimestampsTrait { @@ -23,8 +22,7 @@ trait TimestampsTrait */ public function created_at() { - return (new Date($this->wrappedObject->created_at)) - ->setTimezone(Config::get('cachet.timezone'))->toDateTimeString(); + return app(DateFactory::class)->make($this->wrappedObject->created_at)->toDateTimeString(); } /** @@ -34,8 +32,7 @@ trait TimestampsTrait */ public function updated_at() { - return (new Date($this->wrappedObject->updated_at)) - ->setTimezone(Config::get('cachet.timezone'))->toDateTimeString(); + return app(DateFactory::class)->make($this->wrappedObject->updated_at)->toDateTimeString(); } /** @@ -45,7 +42,6 @@ trait TimestampsTrait */ public function deleted_at() { - return (new Date($this->wrappedObject->deleted_at)) - ->setTimezone(Config::get('cachet.timezone'))->toDateTimeString(); + return app(DateFactory::class)->make($this->wrappedObject->deleted_at)->toDateTimeString(); } }