You are here

public static function CalendarHelper::weekInfo in Calendar 8.2

Helper function to return start- and enddate for week

Parameters

string $date_argument: The date argument string

string $id: The optional calendar argument plugin

Return value

array An array containing startweekdate and endweekdate

Throws

\Exception

2 calls to CalendarHelper::weekInfo()
CalendarHelper::month in src/CalendarHelper.php
Returns an array for month.
CalendarHelper::week in src/CalendarHelper.php
Returns an array for week.

File

src/CalendarHelper.php, line 282

Class

CalendarHelper
Class CalendarHelper.

Namespace

Drupal\calendar

Code

public static function weekInfo($date_argument) {
  $week = NULL;
  $startweekdate = new DrupalDateTime();
  $year = (int) substr($date_argument, 0, 4);
  $week = (int) substr($date_argument, 4);
  $startweekdate
    ->setISOdate($year, $week);

  // Get first day of week from Drupal config and move day by diff
  $first_day_week = Drupal::config('system.date')
    ->get('first_day');
  if ($first_day_week === 0) {
    $week_start_day = self::WeekDays()[$first_day_week]
      ->getUntranslatedString();
    $startweekdate
      ->modify($week_start_day . ' previous week');
  }
  else {
    $week_start_day = self::WeekDays()[$first_day_week]
      ->getUntranslatedString();
    $startweekdate
      ->modify($week_start_day . ' this week');
  }
  $endweekdate = clone $startweekdate;
  $endweekdate
    ->add(new \DateInterval('P6DT23H59M59S'));
  return [
    'startweekdate' => $startweekdate,
    'endweekdate' => $endweekdate,
    'weekno' => $week,
  ];
}