diff --git date_popup/date_popup.module date_popup/date_popup.module index 62fba29..0bda791 100644 --- date_popup/date_popup.module +++ date_popup/date_popup.module @@ -333,6 +333,22 @@ function date_popup_validate($element, &$form_state) { form_set_value($element, NULL, $form_state); return; } + $format = $element['#date_format']; + $format = strtr($format, timepicker_format_replacements()); + $format = date_limit_format($format, $granularity); + // Evaluate date and time parts separately since we can't know or care + // how they're combined in the complete date format. + $time_format = date_limit_format($format, array('hour', 'minute', 'second')); + + // we have the proper AM/PM + $meridiem = TRUE; + if (strpos($time_format, 'A') !== FALSE) { + $meridiem = (stripos($element['#value']['time'], 'AM') !== FALSE || stripos($element['#value']['time'], 'PM') !== FALSE); + } + if (!$meridiem) { + form_set_error($error_field . '][time', t('Field %field must have either AM or PM', array('%field' => $label))); + return; + } require_once('./'. drupal_get_path('module', 'date_api') .'/date_api_elements.inc'); date_popup_load();