You are here

public static function CalendarHelper::weekInfoDate in Calendar 8.2

1 call to CalendarHelper::weekInfoDate()
CalendarHelper::day in src/CalendarHelper.php
Returns an array for day.

File

src/CalendarHelper.php, line 307

Class

CalendarHelper
Class CalendarHelper.

Namespace

Drupal\calendar

Code

public static function weekInfoDate($date) {
  $startweekdate = new DrupalDateTime($date);

  // Get first day of week from Drupal config and move day by diff
  $first_day_week = Drupal::config('system.date')
    ->get('first_day');
  $week_start_day = self::WeekDays()[$first_day_week]
    ->getUntranslatedString();
  if ($first_day_week === 0) {

    //} && $date->format('w') === '0') {
    if ($startweekdate
      ->format('w') === '0') {

      // do nothing
      // $startweekdate->modify($week_start_day . ' this week');
    }
    else {
      $startweekdate
        ->modify($week_start_day . ' previous week');
    }
  }
  else {
    if ($startweekdate
      ->format('w') < $first_day_week) {
      $startweekdate
        ->modify('previous ' . $week_start_day);
    }
    else {
      $startweekdate
        ->modify($week_start_day . ' this week');
    }
  }
  $week = $startweekdate
    ->format('W');

  // Add time because this function is used in arguments
  $endweekdate = clone $startweekdate;
  $endweekdate
    ->add(new \DateInterval('P6DT23H59M59S'));
  return [
    'startweekdate' => $startweekdate,
    'endweekdate' => $endweekdate,
    'weekno' => $week,
  ];
}