- assert: documentation ( source)
- explode: documentation ( source)
<?php
$r = specialSetStartEndDate(['H (Zeitraum)' => '2015-07 2015-09']);
echo($r);
function specialSetStartEndDate($values, $params)
{
assert(array_key_exists('H (Zeitraum)', $values));
$period = $values['H (Zeitraum)'];
$dates = explode(' ', $period);
$start_date = DateTime::createFromFormat('Y-d', $dates[0]);
$end_date = DateTime::createFromFormat('Y-d', $dates[1]);
if (false == $start_date || false == $end_date) {
throw new EWDRMI_Exception("Invalid input format of date '$period'", EWDRMI_Exception::BREAK_ROW);
}
$start_date->modify('first day of');
$end_date->modify('last day of');
$result = array(
'start_date' => $start_date->format('Y-m-d'),
'end_date' => $end_date->format('Y-m-d'),
);
return $result;
}