public function getEndDate($membership_id, $membership_start) { $format = 'Y-m-d H:i:s'; $membership = JTable::getInstance('Membership', 'RSMembershipTable'); $offset = JFactory::getApplication()->getCfg('offset'); if ($membership->load($membership_id)) { // Trial settings if ($membership->use_trial_period) { $period = $membership->trial_period; $period_type = $membership->trial_period_type; } else { $period = $membership->period; $period_type = $membership->period_type; } // Fixed expiry if ($membership->fixed_expiry) { $date = RSMembershipHelper::calculateFixedDate($membership->fixed_day, $membership->fixed_month, $membership->fixed_year, JFactory::getDate($membership_start)); $membership_end = JHtml::_('date', $date->toSql(), $format); } elseif ($period) { // Expire in a period of time $date = JFactory::getDate($membership_start, $offset); $date->modify(RSMembership::getDateString($period, $period_type)); $membership_end = JHtml::_('date', $date->toSql(), $format); } else { // No expiry $membership_end = JFactory::getDbo()->getNullDate(); } return $membership_end; } }