From cb00dabd5e35d652a46c5d0be01bb64256ec6a1c Mon Sep 17 00:00:00 2001 From: Daniel Neto Date: Wed, 24 Sep 2025 18:58:37 -0300 Subject: [PATCH] Enhance getDate method to support ISO 8601 format with milliseconds and compact format with space-separated timezone --- objects/EpgParser.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/objects/EpgParser.php b/objects/EpgParser.php index 5a08b87d3a..8e64ce603f 100644 --- a/objects/EpgParser.php +++ b/objects/EpgParser.php @@ -99,6 +99,33 @@ class EpgParser { */ public function getDate(string $date) { $date = str_replace(' 0000', ' +0000', $date); + + // Handle ISO 8601 format with milliseconds: "2025-09-22T00:00:00.000 +0000" + try { + $dt = \DateTime::createFromFormat('Y-m-d\TH:i:s.u P', $date, new DateTimeZone('UTC')); + if ($dt !== false) { + $dt->setTimezone(new DateTimeZone($this->targetTimeZone)); + return $dt->format('Y-m-d H:i:s'); + } + } catch (\Exception $e) { + + } catch (\Error $e) { + + } + + // Handle compact format with space-separated timezone: "20250924004920 0000" + try { + $dt = \DateTime::createFromFormat('YmdHis O', $date, new DateTimeZone('UTC')); + if ($dt !== false) { + $dt->setTimezone(new DateTimeZone($this->targetTimeZone)); + return $dt->format('Y-m-d H:i:s'); + } + } catch (\Exception $e) { + + } catch (\Error $e) { + + } + try { $dt = \DateTime::createFromFormat('YmdHis P', $date, new DateTimeZone('UTC')); $dt->setTimezone(new DateTimeZone($this->targetTimeZone));