diff --git a/vendor/magento/framework/View/Element/Html/Calendar.php b/vendor/magento/framework/View/Element/Html/Calendar.php index 884488d77a74f..cf8f2e3e789e6 100644 --- a/vendor/magento/framework/View/Element/Html/Calendar.php +++ b/vendor/magento/framework/View/Element/Html/Calendar.php @@ -109,10 +109,7 @@ protected function _toHtml() ); $this->assignFieldsValues($localeData); - - // get "am" & "pm" words - $this->assign('am', $this->encoder->encode($localeData['calendar']['gregorian']['AmPmMarkers']['0'])); - $this->assign('pm', $this->encoder->encode($localeData['calendar']['gregorian']['AmPmMarkers']['1'])); + $this->assignAmPmWords($localeData); // get first day of week and weekend days $this->assign( @@ -209,4 +206,23 @@ private function assignFieldsValues(\ResourceBundle $localeData): void $this->assign('week', $this->encoder->encode($localeData['fields']['week']['dn'])); } } + + /** + * Assign "am" & "pm" words from the ICU data + * + * @param \ResourceBundle $localeData + */ + private function assignAmPmWords(\ResourceBundle $localeData): void + { + // AmPmMarkers and AmPmMarkersAbbr aren't guaranteed to exist, so fallback to null if neither exist + $amWord = $localeData['calendar']['gregorian']['AmPmMarkers'][0] ?? + $localeData['calendar']['gregorian']['AmPmMarkersAbbr'][0] ?? + null; + $pmWord = $localeData['calendar']['gregorian']['AmPmMarkers'][1] ?? + $localeData['calendar']['gregorian']['AmPmMarkersAbbr'][1] ?? + null; + + $this->assign('am', $this->encoder->encode($amWord)); + $this->assign('pm', $this->encoder->encode($pmWord)); + } }