/** * Get the calculated valid-to date based on the validity type * * @return null|string */ protected function calculateValidTo() { $validity = $this->definition->getValidity(); $validity_type = $this->definition->getValidityType(); switch ($validity_type) { case srCertificateTypeSetting::VALIDITY_TYPE_DATE: // Date already stored in Y-m-d format $valid_to = $validity; break; case srCertificateTypeSetting::VALIDITY_TYPE_DATE_RANGE: $validity = json_decode($validity, true); $calc_str = ''; if (isset($validity['m'])) { $calc_str .= $validity['m'] . ' months'; } if (isset($validity['d'])) { $calc_str .= ' ' . $validity['d'] . 'days'; } $to = $calc_str ? strtotime('+' . $calc_str) : time(); $valid_to = date('Y-m-d', $to); break; default: $valid_to = null; // Always valid } return $valid_to; }