diff --git a/app/code/core/Mage/AdminNotification/Model/Feed.php b/app/code/core/Mage/AdminNotification/Model/Feed.php index c24c2d9ba79..9b19e23fd67 100644 --- a/app/code/core/Mage/AdminNotification/Model/Feed.php +++ b/app/code/core/Mage/AdminNotification/Model/Feed.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * AdminNotification Feed model @@ -89,7 +90,11 @@ public function checkUpdate() */ public function getDate($rssDate) { - return gmdate(Varien_Db_Adapter_Pdo_Mysql::TIMESTAMP_FORMAT, Carbon::parse($rssDate)->getTimestamp()); + try { + return gmdate(Varien_Db_Adapter_Pdo_Mysql::TIMESTAMP_FORMAT, Carbon::parse($rssDate)->getTimestamp()); + } catch (InvalidFormatException) { + return gmdate(Varien_Db_Adapter_Pdo_Mysql::TIMESTAMP_FORMAT); + } } /** diff --git a/app/code/core/Mage/Api/Model/Session.php b/app/code/core/Mage/Api/Model/Session.php index 154cbde90dd..e6ebe1c69ad 100644 --- a/app/code/core/Mage/Api/Model/Session.php +++ b/app/code/core/Mage/Api/Model/Session.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Webservice api session @@ -219,8 +220,12 @@ public function isSessionExpired($user) return true; } - $timeout = Carbon::parse(Varien_Date::now())->getTimestamp() - Carbon::parse($user->getLogdate())->getTimestamp(); - return $timeout > Mage::getStoreConfig('api/config/session_timeout'); + try { + $timeout = Carbon::parse(Varien_Date::now())->getTimestamp() - Carbon::parse($user->getLogdate())->getTimestamp(); + return $timeout > Mage::getStoreConfig('api/config/session_timeout'); + } catch (InvalidFormatException) { + return true; + } } /** diff --git a/app/code/core/Mage/CatalogRule/Model/Resource/Rule.php b/app/code/core/Mage/CatalogRule/Model/Resource/Rule.php index c46943dbdc8..1f6e2a9f96b 100644 --- a/app/code/core/Mage/CatalogRule/Model/Resource/Rule.php +++ b/app/code/core/Mage/CatalogRule/Model/Resource/Rule.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Catalog rules resource model @@ -180,8 +181,14 @@ public function insertRuleData(Mage_CatalogRule_Model_Rule $rule, array $website $customerGroupIds = $rule->getCustomerGroupIds(); - $fromTime = (int) Mage::getModel('core/date')->gmtTimestamp(Carbon::parse((string) $rule->getFromDate())->getTimestamp()); - $toTime = (int) Mage::getModel('core/date')->gmtTimestamp(Carbon::parse((string) $rule->getToDate())->getTimestamp()); + try { + $fromTime = (int) Mage::getModel('core/date')->gmtTimestamp(Carbon::parse((string) $rule->getFromDate())->getTimestamp()); + $toTime = (int) Mage::getModel('core/date')->gmtTimestamp(Carbon::parse((string) $rule->getToDate())->getTimestamp()); + } catch (InvalidFormatException) { + // Invalid date format, skip rule + return; + } + $toTime = $toTime ? ($toTime + self::SECONDS_IN_DAY - 1) : 0; $timestamp = Carbon::now()->getTimestamp(); @@ -693,7 +700,11 @@ public function getRulesFromProduct($date, $websiteId, $customerGroupId, $produc { $adapter = $this->_getReadAdapter(); if (is_string($date)) { - $date = Carbon::parse($date)->getTimestamp(); + try { + $date = Carbon::parse($date)->getTimestamp(); + } catch (InvalidFormatException) { + return []; + } } $select = $adapter->select() diff --git a/app/code/core/Mage/CatalogRule/Model/Rule/Condition/Product.php b/app/code/core/Mage/CatalogRule/Model/Rule/Condition/Product.php index 0c721cddf19..6dea3af108f 100644 --- a/app/code/core/Mage/CatalogRule/Model/Rule/Condition/Product.php +++ b/app/code/core/Mage/CatalogRule/Model/Rule/Condition/Product.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Catalog Rule Product Condition data model @@ -102,7 +103,11 @@ protected function _prepareDatetimeValue($value, $object) return null; } - $value = Carbon::parse($value)->getTimestamp(); + try { + $value = Carbon::parse($value)->getTimestamp(); + } catch (InvalidFormatException) { + return null; + } } return $value; diff --git a/app/code/core/Mage/Core/Block/Html/Date.php b/app/code/core/Mage/Core/Block/Html/Date.php index ac824159511..89ccdb904e0 100644 --- a/app/code/core/Mage/Core/Block/Html/Date.php +++ b/app/code/core/Mage/Core/Block/Html/Date.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * HTML select element block @@ -79,7 +80,11 @@ protected function _toHtml() public function getEscapedValue($index = null) { if ($this->getFormat() && $this->getValue()) { - return Carbon::parse($this->getValue())->format($this->getFormat()); + try { + return Carbon::parse($this->getValue())->format($this->getFormat()); + } catch (InvalidFormatException) { + return htmlspecialchars($this->getValue()); + } } return htmlspecialchars($this->getValue()); diff --git a/app/code/core/Mage/Core/Model/Date.php b/app/code/core/Mage/Core/Model/Date.php index 3e4c088818e..3f3f83b4ecc 100644 --- a/app/code/core/Mage/Core/Model/Date.php +++ b/app/code/core/Mage/Core/Model/Date.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Date conversion model @@ -122,7 +123,11 @@ public function gmtTimestamp($input = null) } elseif (is_numeric($input)) { $result = $input; } else { - $result = Carbon::parse($input)->getTimestamp(); + try { + $result = Carbon::parse($input)->getTimestamp(); + } catch (InvalidFormatException) { + return false; + } } if ($result === false) { @@ -142,7 +147,7 @@ public function gmtTimestamp($input = null) * Input date must be in GMT timezone * * @param int|string $input date in GMT timezone - * @return int + * @return false|int */ public function timestamp($input = null) { @@ -151,7 +156,11 @@ public function timestamp($input = null) } elseif (is_numeric($input)) { $result = $input; } else { - $result = Carbon::parse($input)->getTimestamp(); + try { + $result = Carbon::parse($input)->getTimestamp(); + } catch (InvalidFormatException) { + return false; + } } $date = Mage::app()->getLocale()->date($result); diff --git a/app/code/core/Mage/Core/Model/Locale.php b/app/code/core/Mage/Core/Model/Locale.php index 719df232aa7..49e7b6197b2 100644 --- a/app/code/core/Mage/Core/Model/Locale.php +++ b/app/code/core/Mage/Core/Model/Locale.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Locale model @@ -632,7 +633,11 @@ public function storeTimeStamp($store = null) @date_default_timezone_set($timezone); $date = date(Varien_Date::DATETIME_PHP_FORMAT); @date_default_timezone_set($currentTimezone); - return Carbon::parse($date)->getTimestamp(); + try { + return Carbon::parse($date)->getTimestamp(); + } catch (InvalidFormatException) { + return Carbon::now()->getTimestamp(); + } } /** @@ -886,8 +891,18 @@ public function isStoreDateInInterval($store, $dateFrom = null, $dateTo = null) } $storeTimeStamp = $this->storeTimeStamp($store); - $fromTimeStamp = Carbon::parse((string) $dateFrom)->getTimestamp(); - $toTimeStamp = Carbon::parse((string) $dateTo)->getTimestamp(); + + // Initialize variables to avoid undefined variable issues + $fromTimeStamp = 0; + $toTimeStamp = 0; + + try { + $fromTimeStamp = Carbon::parse((string) $dateFrom)->getTimestamp(); + $toTimeStamp = Carbon::parse((string) $dateTo)->getTimestamp(); + } catch (InvalidFormatException) { + return false; + } + if ($dateTo) { // fix date YYYY-MM-DD 00:00:00 to YYYY-MM-DD 23:59:59 $toTimeStamp += 86400; diff --git a/app/code/core/Mage/Cron/Model/Observer.php b/app/code/core/Mage/Cron/Model/Observer.php index 1875b1a2966..d246a1943f1 100644 --- a/app/code/core/Mage/Cron/Model/Observer.php +++ b/app/code/core/Mage/Cron/Model/Observer.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Crontab observer @@ -243,9 +244,23 @@ public function cleanup() $now = Carbon::now()->getTimestamp(); foreach ($history->getIterator() as $record) { - if (empty($record->getExecutedAt()) - || (Carbon::parse($record->getExecutedAt())->getTimestamp() < $now - $historyLifetimes[$record->getStatus()]) - ) { + $executedAt = $record->getExecutedAt(); + + // Skip parsing if the date is empty + if (empty($executedAt)) { + $record->delete(); + continue; + } + + try { + $executedTimestamp = Carbon::parse($executedAt)->getTimestamp(); + } catch (InvalidFormatException) { + // If date is malformed, delete the record + $record->delete(); + continue; + } + + if ($executedTimestamp < $now - $historyLifetimes[$record->getStatus()]) { $record->delete(); } } diff --git a/app/code/core/Mage/Cron/Model/Schedule.php b/app/code/core/Mage/Cron/Model/Schedule.php index 254f1075436..3a0d9c15935 100644 --- a/app/code/core/Mage/Cron/Model/Schedule.php +++ b/app/code/core/Mage/Cron/Model/Schedule.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Crontab schedule model @@ -92,7 +93,11 @@ public function trySchedule($time) } if (!is_numeric($time)) { - $time = Carbon::parse($time)->getTimestamp(); + try { + $time = Carbon::parse($time)->getTimestamp(); + } catch (InvalidFormatException) { + $time = false; + } } if ($time === false) { diff --git a/app/code/core/Mage/Eav/Model/Attribute/Data/Date.php b/app/code/core/Mage/Eav/Model/Attribute/Data/Date.php index e5be6605b3e..cb3d57dd759 100644 --- a/app/code/core/Mage/Eav/Model/Attribute/Data/Date.php +++ b/app/code/core/Mage/Eav/Model/Attribute/Data/Date.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * EAV Entity Attribute Date Data Model @@ -63,30 +64,37 @@ public function validateValue($value) //range validation $validateRules = $attribute->getValidateRules(); - if ((!empty($validateRules['date_range_min']) && (Carbon::parse($value)->getTimestamp() < $validateRules['date_range_min'])) - || (!empty($validateRules['date_range_max']) && (Carbon::parse($value)->getTimestamp() > $validateRules['date_range_max'])) - ) { - $format = 'd/m/Y'; - if (!empty($validateRules['date_range_min']) && !empty($validateRules['date_range_max'])) { - $errors[] = Mage::helper('customer')->__( - 'Please enter a valid date between %s and %s at %s.', - Carbon::createFromTimestamp($validateRules['date_range_min'])->format($format), - Carbon::createFromTimestamp($validateRules['date_range_max'])->format($format), - $label, - ); - } elseif (!empty($validateRules['date_range_min'])) { - $errors[] = Mage::helper('customer')->__( - 'Please enter a valid date equal to or greater than %s at %s.', - Carbon::createFromTimestamp($validateRules['date_range_min'])->format($format), - $label, - ); - } elseif (!empty($validateRules['date_range_max'])) { - $errors[] = Mage::helper('customer')->__( - 'Please enter a valid date less than or equal to %s at %s.', - Carbon::createFromTimestamp($validateRules['date_range_max'])->format($format), - $label, - ); + try { + if ((!empty($validateRules['date_range_min']) && (Carbon::parse($value)->getTimestamp() < $validateRules['date_range_min'])) + || (!empty($validateRules['date_range_max']) && (Carbon::parse($value)->getTimestamp() > $validateRules['date_range_max'])) + ) { + $format = 'd/m/Y'; + if (!empty($validateRules['date_range_min']) && !empty($validateRules['date_range_max'])) { + $errors[] = Mage::helper('customer')->__( + 'Please enter a valid date between %s and %s at %s.', + Carbon::createFromTimestamp($validateRules['date_range_min'])->format($format), + Carbon::createFromTimestamp($validateRules['date_range_max'])->format($format), + $label, + ); + } elseif (!empty($validateRules['date_range_min'])) { + $errors[] = Mage::helper('customer')->__( + 'Please enter a valid date equal to or greater than %s at %s.', + Carbon::createFromTimestamp($validateRules['date_range_min'])->format($format), + $label, + ); + } elseif (!empty($validateRules['date_range_max'])) { + $errors[] = Mage::helper('customer')->__( + 'Please enter a valid date less than or equal to %s at %s.', + Carbon::createFromTimestamp($validateRules['date_range_max'])->format($format), + $label, + ); + } } + } catch (InvalidFormatException) { + $errors[] = Mage::helper('customer')->__( + 'Please enter a valid date at %s.', + $label, + ); } if (count($errors) == 0) { diff --git a/app/code/core/Mage/Install/Model/Installer/Config.php b/app/code/core/Mage/Install/Model/Installer/Config.php index 5ce9d7ba415..985c504f31d 100644 --- a/app/code/core/Mage/Install/Model/Installer/Config.php +++ b/app/code/core/Mage/Install/Model/Installer/Config.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Config installer @@ -169,7 +170,12 @@ protected function _checkUrl($url, $secure = false) public function replaceTmpInstallDate($date = null) { - $stamp = Carbon::parse((string) $date)->getTimestamp(); + try { + $stamp = Carbon::parse((string) $date)->getTimestamp(); + } catch (InvalidFormatException) { + $stamp = null; + } + $localXml = file_get_contents($this->_localConfigFile); $localXml = str_replace(self::TMP_INSTALL_DATE_VALUE, Carbon::createFromTimestamp($stamp ? $stamp : Carbon::now()->getTimestamp())->format('r'), $localXml); file_put_contents($this->_localConfigFile, $localXml); diff --git a/app/code/core/Mage/Paypal/Model/Cert.php b/app/code/core/Mage/Paypal/Model/Cert.php index 6d366a14f2d..e8712edb28a 100644 --- a/app/code/core/Mage/Paypal/Model/Cert.php +++ b/app/code/core/Mage/Paypal/Model/Cert.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * PayPal specific model for certificate based authentication @@ -54,7 +55,13 @@ public function getCertPath() Mage::throwException(Mage::helper('paypal')->__('PayPal certificate does not exist.')); } - $certFileName = sprintf('cert_%s_%s.pem', $this->getWebsiteId(), Carbon::parse($this->getUpdatedAt())->getTimestamp()); + try { + $timestamp = Carbon::parse($this->getUpdatedAt())->getTimestamp(); + } catch (InvalidFormatException) { + $timestamp = Carbon::now()->getTimestamp(); + } + + $certFileName = sprintf('cert_%s_%s.pem', $this->getWebsiteId(), $timestamp); $certFile = $this->_getBaseDir() . DS . $certFileName; if (!file_exists($certFile)) { diff --git a/app/code/core/Mage/Paypal/Model/Express.php b/app/code/core/Mage/Paypal/Model/Express.php index 5205b2cab44..3f73c5291f1 100644 --- a/app/code/core/Mage/Paypal/Model/Express.php +++ b/app/code/core/Mage/Paypal/Model/Express.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * @package Mage_Paypal @@ -662,9 +663,13 @@ public function canCapture() return false; } - $dateCompass = Carbon::parse($orderTransaction->getCreatedAt())->addDays($orderValidPeriod); - $currentDate = Carbon::now(); - if ($currentDate > $dateCompass) { + try { + $dateCompass = Carbon::parse($orderTransaction->getCreatedAt())->addDays($orderValidPeriod); + $currentDate = Carbon::now(); + if ($currentDate > $dateCompass) { + return false; + } + } catch (InvalidFormatException) { return false; } } diff --git a/app/code/core/Mage/Rule/Model/Condition/Product/Abstract.php b/app/code/core/Mage/Rule/Model/Condition/Product/Abstract.php index 18b1a439fef..3f300570bac 100644 --- a/app/code/core/Mage/Rule/Model/Condition/Product/Abstract.php +++ b/app/code/core/Mage/Rule/Model/Condition/Product/Abstract.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Abstract Rule product condition data model @@ -506,9 +507,13 @@ public function validate(Varien_Object $object) $attr = $object->getResource()->getAttribute($attrCode); if ($attr && $attr->getBackendType() == 'datetime' && !is_int($this->getValue())) { - $this->setValue(Carbon::parse($this->getValue())->getTimestamp()); - $value = Carbon::parse($object->getData($attrCode))->getTimestamp(); - return $this->validateAttribute($value); + try { + $this->setValue(Carbon::parse($this->getValue())->getTimestamp()); + $value = Carbon::parse($object->getData($attrCode))->getTimestamp(); + return $this->validateAttribute($value); + } catch (InvalidFormatException) { + return false; + } } if ($attr && $attr->getFrontendInput() == 'multiselect') { @@ -526,7 +531,11 @@ public function validate(Varien_Object $object) foreach ($this->_entityAttributeValues[$object->getId()] as $value) { $attr = $object->getResource()->getAttribute($attrCode); if ($attr && $attr->getBackendType() == 'datetime') { - $value = Carbon::parse($value)->getTimestamp(); + try { + $value = Carbon::parse($value)->getTimestamp(); + } catch (InvalidFormatException) { + continue; + } } elseif ($attr && $attr->getFrontendInput() == 'multiselect') { $value = strlen($value) ? explode(',', $value) : []; } diff --git a/app/code/core/Mage/Shipping/Block/Tracking/Popup.php b/app/code/core/Mage/Shipping/Block/Tracking/Popup.php index 779e4b36a1f..42f639ad360 100644 --- a/app/code/core/Mage/Shipping/Block/Tracking/Popup.php +++ b/app/code/core/Mage/Shipping/Block/Tracking/Popup.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Class Mage_Shipping_Block_Tracking_Popup @@ -221,8 +222,12 @@ public function formatDeliveryDate($date) { $locale = Mage::app()->getLocale(); $format = $locale->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM); - return $locale->date(Carbon::parse($date)->getTimestamp(), Zend_Date::TIMESTAMP, null, false) - ->toString($format); + try { + return $locale->date(Carbon::parse($date)->getTimestamp(), Zend_Date::TIMESTAMP, null, false) + ->toString($format); + } catch (InvalidFormatException) { + return $date; + } } /** @@ -241,8 +246,12 @@ public function formatDeliveryTime($time, $date = null) $locale = Mage::app()->getLocale(); $format = $locale->getTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT); - return $locale->date(Carbon::parse($time)->getTimestamp(), Zend_Date::TIMESTAMP, null, false) - ->toString($format); + try { + return $locale->date(Carbon::parse($time)->getTimestamp(), Zend_Date::TIMESTAMP, null, false) + ->toString($format); + } catch (InvalidFormatException) { + return $time; + } } /** diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Abstract.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Abstract.php index fc0d6570ff4..5640ec49010 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Abstract.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/Abstract.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * DHL Abstract class @@ -61,12 +62,16 @@ protected function _determineShippingDay($shippingDays, $date) $shippingDays = explode(',', $shippingDays); $index = 0; - $weekday = Carbon::parse($date)->format('D'); - while (!in_array($weekday, $shippingDays) && $index < 10) { - $index++; - $weekday = Carbon::parse("$date +$index day")->format('D'); - } + try { + $weekday = Carbon::parse($date)->format('D'); + while (!in_array($weekday, $shippingDays) && $index < 10) { + $index++; + $weekday = Carbon::parse("$date +$index day")->format('D'); + } - return Carbon::parse("$date +$index day")->format(self::REQUEST_DATE_FORMAT); + return Carbon::parse("$date +$index day")->format(self::REQUEST_DATE_FORMAT); + } catch (InvalidFormatException) { + return $date; + } } } diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php index fae0041f796..36591ed0e24 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * DHL International (API v1.4) @@ -787,7 +788,12 @@ protected function _getQuotes() $debugPoint = &$debugData['try-' . $offset]; $requestXml = $this->_buildQuotesRequestXml(); - $date = Carbon::parse($this->_getShipDate() . " +$offset days")->format(self::REQUEST_DATE_FORMAT); + try { + $date = Carbon::parse($this->_getShipDate() . " +$offset days")->format(self::REQUEST_DATE_FORMAT); + } catch (InvalidFormatException) { + break; + } + $this->_setQuotesRequestXmlDate($requestXml, $date); $request = $requestXml->asXML(); diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php index 97f34c7efa1..655c28805a1 100644 --- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php +++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php @@ -8,6 +8,7 @@ */ use Carbon\Carbon; +use Carbon\Exceptions\InvalidFormatException; /** * Fedex shipping implementation @@ -1064,7 +1065,12 @@ protected function _parseTrackingResponse($trackingValue, $response) $resultArray['status'] = (string) $trackInfo->StatusDescription; $resultArray['service'] = (string) $trackInfo->ServiceInfo; $timestamp = $trackInfo->EstimatedDeliveryTimestamp ?? $trackInfo->ActualDeliveryTimestamp; - $timestamp = Carbon::parse((string) $timestamp)->getTimestamp(); + try { + $timestamp = Carbon::parse((string) $timestamp)->getTimestamp(); + } catch (InvalidFormatException) { + $timestamp = null; + } + if ($timestamp) { $resultArray['deliverydate'] = Carbon::createFromTimestamp($timestamp)->format('Y-m-d'); $resultArray['deliverytime'] = Carbon::createFromTimestamp($timestamp)->format('H:i:s'); @@ -1106,7 +1112,12 @@ protected function _parseTrackingResponse($trackingValue, $response) foreach ($events as $event) { $tempArray = []; $tempArray['activity'] = (string) $event->EventDescription; - $timestamp = Carbon::parse((string) $event->Timestamp)->getTimestamp(); + try { + $timestamp = Carbon::parse((string) $event->Timestamp)->getTimestamp(); + } catch (InvalidFormatException) { + $timestamp = null; + } + if ($timestamp) { $tempArray['deliverydate'] = Carbon::createFromTimestamp($timestamp)->format('Y-m-d'); $tempArray['deliverytime'] = Carbon::createFromTimestamp($timestamp)->format('H:i:s'); diff --git a/lib/Varien/Db/Adapter/Mysqli.php b/lib/Varien/Db/Adapter/Mysqli.php index dbe83e0be38..2ba942d2c46 100644 --- a/lib/Varien/Db/Adapter/Mysqli.php +++ b/lib/Varien/Db/Adapter/Mysqli.php @@ -1,6 +1,7 @@ toString(self::ISO_DATE_FORMAT); } - return Carbon::parse($date)->format(Varien_Db_Adapter_Pdo_Mysql::DATE_FORMAT); + try { + return Carbon::parse($date)->format(Varien_Db_Adapter_Pdo_Mysql::DATE_FORMAT); + } catch (InvalidFormatException) { + return null; + } } public function convertDateTime($datetime) @@ -121,7 +126,11 @@ public function convertDateTime($datetime) return $datetime->toString(self::ISO_DATETIME_FORMAT); } - return Carbon::parse($datetime)->format(Varien_Db_Adapter_Pdo_Mysql::TIMESTAMP_FORMAT); + try { + return Carbon::parse($datetime)->format(Varien_Db_Adapter_Pdo_Mysql::TIMESTAMP_FORMAT); + } catch (InvalidFormatException) { + return null; + } } // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps