* @author Timo Hund */ class DateRangeFacetParser extends AbstractRangeFacetParser { /** * @var string */ protected $facetClass = DateRangeFacet::class; /** * @var string */ protected $facetItemClass = DateRange::class; /** * @var string */ protected $facetRangeCountClass = DateRangeCount::class; /** * @param SearchResultSet $resultSet * @param string $facetName * @param array $facetConfiguration * @return DateRangeFacet|null */ public function parse(SearchResultSet $resultSet, $facetName, array $facetConfiguration) { return $this->getParsedFacet( $resultSet, $facetName, $facetConfiguration, $this->facetClass, $this->facetItemClass, $this->facetRangeCountClass ); } /** * @param string $rawDate * @return DateTime|null */ protected function parseRequestValue($rawDate) { $rawDate = \DateTime::createFromFormat('Ymd', substr($rawDate, 0, 8)); if ($rawDate === false) { return null; } $date = new DateTime($rawDate->format(DateTime::ISO8601)); return $date; } /** * @param string $isoDateString * @return DateTime */ protected function parseResponseValue($isoDateString) { $rawDate = \DateTime::createFromFormat(\DateTime::ISO8601, $isoDateString); return new DateTime($rawDate->format(DateTime::ISO8601)); } }