diff --git a/CRM/Contribute/Form/ContributionCharts.php b/CRM/Contribute/Form/ContributionCharts.php index 666546e0ca81..892b9006f4b8 100644 --- a/CRM/Contribute/Form/ContributionCharts.php +++ b/CRM/Contribute/Form/ContributionCharts.php @@ -172,13 +172,15 @@ public function postProcess() { $urlParams = "reset=1&force=1&status=1&start={$startDate}&end={$endDate}&test=0"; } elseif ($chartKey == 'by_year') { + $year = substr($index, 0, 4); + $year = is_numeric($year) ? (int) $year : date('Y'); if (!empty($config->fiscalYearStart) && ($config->fiscalYearStart['M'] != 1 || $config->fiscalYearStart['d'] != 1)) { - $startDate = date('Ymd', mktime(0, 0, 0, $config->fiscalYearStart['M'], $config->fiscalYearStart['d'], substr($index, 0, 4))); - $endDate = date('Ymd', mktime(0, 0, 0, $config->fiscalYearStart['M'], $config->fiscalYearStart['d'], (substr($index, 0, 4)) + 1)); + $startDate = date('Ymd', mktime(0, 0, 0, $config->fiscalYearStart['M'], $config->fiscalYearStart['d'], $year)); + $endDate = date('Ymd', mktime(0, 0, 0, $config->fiscalYearStart['M'], $config->fiscalYearStart['d'], $year + 1)); } else { - $startDate = CRM_Utils_Date::format(['Y' => substr($index, 0, 4)]); - $endDate = date('Ymd', mktime(0, 0, 0, 13, 0, substr($index, 0, 4))); + $startDate = CRM_Utils_Date::format(['Y' => $year]); + $endDate = date('Ymd', mktime(0, 0, 0, 13, 0, $year)); } $urlParams = "reset=1&force=1&status=1&start={$startDate}&end={$endDate}&test=0"; }