convertToDateObject($utc_date); } return $utc_date->setTimezone(new DateTimeZone($timezone)); } /** * Converts from client timezone to UTC. * @param datetime object $utc_date * @return Carbon Carbon object */ public function createUtcDate($client_date) { if (is_string($client_date)) { $client_date = $this->convertToDateObject($client_date); } return $client_date->setTimezone(new DateTimeZone('GMT')); } /** * Formats a date. * @param Carbon|string $date Carbon object or date string * @param string $format The date display format * @return string The formatted date */ public function formatDate($date, string $format) :string { if(!isset($date)) return ''; // if (!$date || strlen($date) < 1) { // return ''; // } if (is_string($date)) { $date = $this->convertToDateObject($date); } return $date->format($format); } /** * Formats a date. * @param Carbon/String $date Carbon object or date string * @param string $format The date display format * @return string The formatted date */ public function formatDateTimestamp($timestamp, string $format) :string { return Carbon::createFromTimestamp($timestamp)->format($format); } private function convertToDateObject($date) { return new DateTime($date); } }