diff --git a/src/Timezone.php b/src/Timezone.php index 7e9c9d9..606c0b9 100644 --- a/src/Timezone.php +++ b/src/Timezone.php @@ -12,7 +12,7 @@ class Timezone * @param bool $format_timezone * @return string */ - public function convertToLocal(?Carbon $date, $format = null, $format_timezone = false) : string + public function convertToLocal(?Carbon $date, $format = null, $format_timezone = false): string { if (is_null($date)) { return 'Empty'; @@ -29,17 +29,36 @@ public function convertToLocal(?Carbon $date, $format = null, $format_timezone = $formatted_date_time = $date->format($format); if ($format_timezone) { - return $formatted_date_time . ' ' . $this->formatTimezone($date); + return $formatted_date_time.' '.$this->formatTimezone($date); } return $formatted_date_time; } + /** + * @param Carbon|null $date + * @return string + */ + public function convertToLocalDiffForHumans(?Carbon $date): string + { + if (is_null($date)) { + return 'Empty'; + } + + $timezone = (auth()->user()->timezone) ?? config('app.timezone'); + + $date->setTimezone($timezone); + + $diffTime = Carbon::parse($date)->diffForHumans(); + + return $diffTime; + } + /** * @param $date * @return Carbon */ - public function convertFromLocal($date) : Carbon + public function convertFromLocal($date): Carbon { return Carbon::parse($date, auth()->user()->timezone)->setTimezone('UTC'); } @@ -48,13 +67,13 @@ public function convertFromLocal($date) : Carbon * @param Carbon $date * @return string */ - private function formatTimezone(Carbon $date) : string + private function formatTimezone(Carbon $date): string { $timezone = $date->format('e'); $parts = explode('/', $timezone); if (count($parts) > 1) { - return str_replace('_', ' ', $parts[1]) . ', ' . $parts[0]; + return str_replace('_', ' ', $parts[1]).', '.$parts[0]; } return str_replace('_', ' ', $parts[0]);