diff --git a/src/EventCreationService.php b/src/EventCreationService.php index 534075cb8b36d4af951358e821984af10d8e4b27..503567369de4f766c13275b3803973eccead3b00 100644 --- a/src/EventCreationService.php +++ b/src/EventCreationService.php @@ -180,39 +180,43 @@ class EventCreationService { switch ($config['type']) { case 'weekly': - $start_timestamp = $user_input['weekly_recurring_date'][0]['value']['date'] . 'T12:00:00'; - $start_date = DrupalDateTime::createFromFormat(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, $start_timestamp, $utc_timezone); - $start_date->setTimezone($user_timezone); + $time = $user_input['weekly_recurring_date'][0]['time']; + $time_parts = $this->convertTimeTo24hourFormat($time); + $timestamp = implode(':', $time_parts) . ':00'; + + $start_timestamp = $user_input['weekly_recurring_date'][0]['value']['date'] . 'T' . $timestamp; + $start_date = DrupalDateTime::createFromFormat(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, $start_timestamp, $user_timezone); $start_date->setTime(0, 0, 0); - $end_timestamp = $user_input['weekly_recurring_date'][0]['end_value']['date'] . 'T12:00:00'; - $end_date = DrupalDateTime::createFromFormat(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, $end_timestamp, $utc_timezone); - $end_date->setTimezone($user_timezone); + $end_timestamp = $user_input['weekly_recurring_date'][0]['end_value']['date'] . 'T' . $timestamp; + $end_date = DrupalDateTime::createFromFormat(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, $end_timestamp, $user_timezone); $end_date->setTime(0, 0, 0); $config['start_date'] = $start_date; $config['end_date'] = $end_date; - $config['time'] = $user_input['weekly_recurring_date'][0]['time']; + $config['time'] = $time; $config['duration'] = $user_input['weekly_recurring_date'][0]['duration']; $config['days'] = array_filter(array_values($user_input['weekly_recurring_date'][0]['days'])); break; case 'monthly': - $start_timestamp = $user_input['monthly_recurring_date'][0]['value']['date'] . 'T12:00:00'; - $start_date = DrupalDateTime::createFromFormat(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, $start_timestamp, $utc_timezone); - $start_date->setTimezone($user_timezone); + $time = $user_input['monthly_recurring_date'][0]['time']; + $time_parts = $this->convertTimeTo24hourFormat($time); + $timestamp = implode(':', $time_parts) . ':00'; + + $start_timestamp = $user_input['monthly_recurring_date'][0]['value']['date'] . 'T' . $timestamp; + $start_date = DrupalDateTime::createFromFormat(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, $start_timestamp, $user_timezone); $start_date->setTime(0, 0, 0); - $end_timestamp = $user_input['monthly_recurring_date'][0]['end_value']['date'] . 'T12:00:00'; - $end_date = DrupalDateTime::createFromFormat(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, $end_timestamp, $utc_timezone); - $end_date->setTimezone($user_timezone); + $end_timestamp = $user_input['monthly_recurring_date'][0]['end_value']['date'] . 'T' . $timestamp; + $end_date = DrupalDateTime::createFromFormat(DateTimeItemInterface::DATETIME_STORAGE_FORMAT, $end_timestamp, $user_timezone); $end_date->setTime(0, 0, 0); $config['start_date'] = $start_date; $config['end_date'] = $end_date; - $config['time'] = $user_input['monthly_recurring_date'][0]['time']; + $config['time'] = $time; $config['duration'] = $user_input['monthly_recurring_date'][0]['duration']; $config['monthly_type'] = $user_input['monthly_recurring_date'][0]['type'];