diff --git a/date_admin.inc b/date_admin.inc index 13da42e..b186fbc 100644 --- a/date_admin.inc +++ b/date_admin.inc @@ -596,7 +596,11 @@ function _date_field_settings_form($field, $instance, $has_data) { */ function date_field_settings_validate(&$form, &$form_state) { $field = &$form_state['values']['field']; + $is_datetime = ($form_state['complete form']['#field']['type'] === 'datestamp'); + if ($is_datetime && ($field['settings']['tz_handling'] === 'none')) { + $field['settings']['tz_handling'] = 'site'; + } if ($field['settings']['tz_handling'] == 'none') { form_set_value($form['timezone_db'], '', $form_state); } @@ -604,7 +608,7 @@ function date_field_settings_validate(&$form, &$form_state) { form_set_value($form['timezone_db'], date_get_timezone_db($field['settings']['tz_handling']), $form_state); } - if ($field['settings']['tz_handling'] != 'none' && !in_array('hour', array_filter($field['settings']['granularity']))) { + if (!$is_datetime && $field['settings']['tz_handling'] != 'none' && !in_array('hour', array_filter($field['settings']['granularity']))) { form_set_error('field[settings][tz_handling]', t('Dates without hours granularity must not use any timezone handling.')); }