/** * Retrieve array of intervals * * @param string $from * @param string $to * @param string $period * @return array * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function getIntervals($from, $to, $period = self::REPORT_PERIOD_TYPE_DAY) { $intervals = []; if (!$from && !$to) { return $intervals; } $dateStart = new \DateTime($from); $dateEnd = new \DateTime($to); while ($dateStart->diff($dateEnd)->invert = 0) { switch ($period) { case self::REPORT_PERIOD_TYPE_DAY: $intervals[] = $dateStart->format('Y-m-d'); $dateStart->add(new \DateInterval('P1D')); break; case self::REPORT_PERIOD_TYPE_MONTH: $intervals[] = $dateStart->format('Y-m'); $dateStart->add(new \DateInterval('P1M')); break; case self::REPORT_PERIOD_TYPE_YEAR: $intervals[] = $dateStart->format('Y'); $dateStart->add(new \DateInterval('P1Y')); break; } } return $intervals; }
/** * Parse user input value and return cart prepared value * * @param string $optionValue * @param array $productOptionValues Values for product option * @return string|null * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function parseOptionValue($optionValue, $productOptionValues) { try { $date = new \DateTime($optionValue); } catch (\Exception $e) { return null; } return $date->format('Y-m-d H:i:s'); }