public static function DateRecurModularUtilityTrait::getMonthWeekdayNth in Recurring Date Field Modular Widgets 2.x
Same name and namespace in other branches
- 8 src/DateRecurModularUtilityTrait.php \Drupal\date_recur_modular\DateRecurModularUtilityTrait::getMonthWeekdayNth()
- 3.x src/DateRecurModularUtilityTrait.php \Drupal\date_recur_modular\DateRecurModularUtilityTrait::getMonthWeekdayNth()
Determine nth weekday into a month for a date.
Given the weekday and month for a date, attempt to determine how many weekdays into the month.
Parameters
\DateTime $date: A date.
Return value
int A number between 1 and 5.
3 calls to DateRecurModularUtilityTrait::getMonthWeekdayNth()
- DateRecurModularSierraModalForm::buildForm in src/
Form/ DateRecurModularSierraModalForm.php - Form constructor.
- DateRecurModularSierraWidget::buildRruleFromRecurrenceOption in src/
Plugin/ Field/ FieldWidget/ DateRecurModularSierraWidget.php - Builds a RRULE string from a preset option given a particular start date.
- DateRecurModularSierraWidget::getRecurrenceOptions in src/
Plugin/ Field/ FieldWidget/ DateRecurModularSierraWidget.php - Get recurrence options for a select element based on a start date.
File
- src/
DateRecurModularUtilityTrait.php, line 247
Class
- DateRecurModularUtilityTrait
- Trait containing convenience methods for dealing with date recur widgets.
Namespace
Drupal\date_recur_modularCode
public static function getMonthWeekdayNth(\DateTime $date) : int {
$monthWeekdayNth = 0;
$weekdayNumber = $date
->format('w');
$interval = new \DateInterval('P1D');
$iter = clone $date;
$iter
->setDate((int) $iter
->format('Y'), (int) $iter
->format('m'), 1);
while ($iter <= $date) {
if ($iter
->format('w') === $weekdayNumber) {
$monthWeekdayNth++;
}
$iter
->add($interval);
}
return $monthWeekdayNth;
}