diff --git a/CHANGELOG.md b/CHANGELOG.md index 99e7c5e..675c5e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) princip - Pagination count total bug #213 - Changed internal message move and copy methods #210 - Query::since() query returning empty response #215 +- Carbon Exception Parse Data #45 ### Added - Message::getFolder() method diff --git a/src/IMAP/Message.php b/src/IMAP/Message.php index 9cf77e4..a31b9c3 100644 --- a/src/IMAP/Message.php +++ b/src/IMAP/Message.php @@ -495,6 +495,10 @@ private function parseDate($header) { $parsed_date = Carbon::parse($date); } catch (\Exception $e) { switch (true) { + case preg_match('/([0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ UT)+$/i', $date) > 0: + case preg_match('/([A-Z]{2,3}\,\ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ UT)+$/i', $date) > 0: + $date .= 'C'; + break; case preg_match('/([A-Z]{2,3}[\,|\ \,]\ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}.*)+$/i', $date) > 0: case preg_match('/([A-Z]{2,3}\,\ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ [\-|\+][0-9]{4}\ \(.*)\)+$/i', $date) > 0: case preg_match('/([A-Z]{2,3}\, \ [0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ [\-|\+][0-9]{4}\ \(.*)\)+$/i', $date) > 0: @@ -503,9 +507,6 @@ private function parseDate($header) { $array = array_reverse($array); $date = trim(array_pop($array)); break; - case preg_match('/([0-9]{1,2}\ [A-Z]{2,3}\ [0-9]{4}\ [0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2}\ UT)+$/i', $date) > 0: - $date .= 'C'; - break; } try{ $parsed_date = Carbon::parse($date);