/** * @param Badge $badge * @param \DateTime|null $currentDate * * @return \DateTime */ public function generateExpireDate(Badge $badge, \DateTime $currentDate = null) { if (null === $currentDate) { $currentDate = new \DateTime(); } $modifier = sprintf('+%d %s', $badge->getExpireDuration(), $badge->getExpirePeriodTypeLabel($badge->getExpirePeriod())); return $currentDate->modify($modifier); }