1 date.elements.inc | date_select_input_date($element, $input) |
Helper function for creating a date object out of user input.
File
- core/
modules/ date/ date.elements.inc, line 796 - Date forms and form themes and validation.
Code
function date_select_input_date($element, $input) {
// Was anything entered? If not, we have no date.
if (!is_array($input)) {
return NULL;
}
else {
$entered = array_values(array_filter($input));
if (empty($entered)) {
return NULL;
}
}
$granularity = date_format_order($element['#date_format']);
if (isset($input['ampm'])) {
if ($input['ampm'] == 'pm' && $input['hour'] < 12) {
$input['hour'] += 12;
}
elseif ($input['ampm'] == 'am' && $input['hour'] == 12) {
$input['hour'] -= 12;
}
}
unset($input['ampm']);
// Make the input match the granularity.
foreach (date_nongranularity($granularity) as $part) {
unset($input[$part]);
}
$date = new BackdropDateTime($input, $element['#date_timezone']);
if (is_object($date)) {
$date->limitGranularity($granularity);
if ($date->validGranularity($granularity, $element['#date_flexible'])) {
date_increment_round($date, $element['#date_increment']);
}
return $date;
}
return NULL;
}