You are here

public function GoogleAnalyticsCounterMessageManager::setStartDateEndDate in Google Analytics Counter 8.3

Sets the start and end dates in configuration.

Return value

array Start and end dates.

Overrides GoogleAnalyticsCounterMessageManagerInterface::setStartDateEndDate

File

src/GoogleAnalyticsCounterMessageManager.php, line 249

Class

GoogleAnalyticsCounterMessageManager
Defines the Google Analytics Counter message manager.

Namespace

Drupal\google_analytics_counter

Code

public function setStartDateEndDate() {
  $config = $this->config;
  if ($config
    ->get('general_settings.custom_start_date') != '' & $config
    ->get('general_settings.custom_end_date') != '') {
    $t_args = [
      '%start_date' => $this->dateFormatter
        ->format(strtotime($config
        ->get('general_settings.custom_start_date')), 'custom', 'M j, Y'),
      '%end_date' => $this->dateFormatter
        ->format(strtotime($config
        ->get('general_settings.custom_end_date')), 'custom', 'M j, Y'),
    ];
    return $t_args;
  }
  else {
    $t_args = [];
    switch ($config
      ->get('general_settings.start_date')) {
      case 'today':
        $t_args = [
          '%start_date' => date('M j, Y'),
          '%end_date' => date('M j, Y'),
        ];
        break;
      case 'yesterday':
        $t_args = [
          '%start_date' => date('M j, Y', time() - 60 * 60 * 24),
          '%end_date' => date('M j, Y', time() - 60 * 60 * 24),
        ];
        break;
      case '-1 week last sunday midnight':
        $previous_week = strtotime('-1 week +1 day');
        $start_week = strtotime('last sunday midnight', $previous_week);
        $end_week = strtotime('next saturday', $start_week);
        $start_week = date('M j, Y', $start_week);
        $end_week = date('M j, Y', $end_week);
        $t_args = [
          '%start_date' => $start_week,
          '%end_date' => $end_week,
        ];
        break;
      case 'first day of previous month':
        $t_args = [
          '%start_date' => date('M j, Y', strtotime('first day of previous month')),
          '%end_date' => date('M j, Y', strtotime('last day of previous month')),
        ];
        break;
      case '7 days ago':
        $t_args = [
          '%start_date' => date('M j, Y', strtotime('7 days ago')),
          '%end_date' => date('M j, Y', time() - 60 * 60 * 24),
        ];
        break;
      case '30 days ago':
        $t_args = [
          '%start_date' => date('M j, Y', strtotime('30 days ago')),
          '%end_date' => date('M j, Y', time() - 60 * 60 * 24),
        ];
        break;
      case '3 months ago':
        $t_args = [
          '%start_date' => date('M j, Y', strtotime('3 months ago')),
          '%end_date' => date('M j, Y', time() - 60 * 60 * 24),
        ];
        break;
      case '6 months ago':
        $t_args = [
          '%start_date' => date('M j, Y', strtotime('6 months ago')),
          '%end_date' => date('M j, Y', time() - 60 * 60 * 24),
        ];
        break;
      case 'first day of last year':
        $t_args = [
          '%start_date' => date('M j, Y', strtotime('first day of last year')),
          '%end_date' => date('M j, Y', strtotime('last day of last year')),
        ];
        break;
      case '14 November 2005':
        $t_args = [
          '%start_date' => date('M j, Y', strtotime('14 November 2005')),
          '%end_date' => date('M j, Y', time() - 60 * 60 * 24),
        ];
        break;
      default:
        $t_args = [
          '%start_date' => 'N/A',
          '%end_date' => 'N/A',
        ];
        break;
    }
    return $t_args;
  }
}