我不太担心通过提供多个月的月份和日期的周数来从函数中获取日期,
喜欢,
$date = new DateTime();
$event->event_date = required_date($event->monthly_recurring_week, $event->monthly_recurring_day, $date->format('Y-m-01'));
if($event->event_date < $event->recurring_end_date) { // check for wrong date or not exist event
//problem in this code for next months wrong date
for($event->event_date; $event->event_date < $event->recurring_end_date;){
$event->event_date = $event->event_date;
$events[] = (array) $event;
$date->modify('Next month');
$event->event_date = required_date($event->monthly_recurring_week, $event->monthly_recurring_day, $date->format('Y-m-01'));
}
}
function required_date($week_num, $day, $date) {
$week_of_year = sprintf('%02d', date('W', strtotime($date)) + $week_num);
$day_of_week = date('N', strtotime($day));
$timestamp = strtotime(date('Y') . '-W' . $week_of_year . '-' . $day_of_week);
return date('Y-m-d H:i:s', $timestamp);
}
这对于本月非常有效,但对于下一个它给了我加上 1 周的日期!请帮忙!