When you submit the form, the value is presented with debug_dump(), so strings are quoted and array values listed.
<?php $months = array( 1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', 5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August', 9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December', ); $field = new form_field_date($form, 'Date'); $field->input_options_value_set('D', range(1, 31), 'Day'); // Range creates a 0 based index, so use the array values only $field->input_options_text_set('M', 'M'); // Month can use 'F', 'M', 'n', or 'm' formats, or an array (e.g. $months) ... this is slower for data entry (keyboard/mouse), but can avoid the American date format issue (MM/DD/YYYY) $field->required_error_set('The date is required.'); $field->invalid_error_set('The date does not appear to be correct.'); // $field->format_set(NULL); ?>