setLogger($container->get('logger.channel.search_api')); return $plugin; } /** * {@inheritdoc} */ public function getValue($value) { if ((string) $value === '') { return NULL; } if (is_numeric($value)) { return (int) $value; } $timezone = new \DateTimeZone(DateTimeItemInterface::STORAGE_TIMEZONE); $date = new DateTimePlus($value, $timezone); // Check for invalid datetime strings. if ($date->hasErrors()) { foreach ($date->getErrors() as $error) { $args = [ '@value' => $value, '@error' => $error, ]; $this->getLogger()->warning('Error while parsing date/time value "@value": @error.', $args); } return NULL; } // Add in time component if this is a date-only field. if (!str_contains($value, ':')) { $date->setDefaultDateTime(); } return $date->getTimestamp(); } }