Display date field labels within selectors Is there a way to move the labels of the day/month/year components inside the selectors (like Facebook has it on their registration page, see 'Birthday')? I have placeholders in all my text fields and it looks silly that the labels of date fields sit on top.
Ok I've just quickly whipped up a sandbox module to modify date options array. And here's the code, hope this helps:

/**
 * Implementation of hook_form_alter()
 * @param array $form
 * @param array $form_state
 * @param string $form_id
 */
function sandbox_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  if($form_id == 'article_node_form') {
    // Only call after builder if we're using date_combo type which is 3 select fields
    if($form['field_date'][$form['field_date']['#language']][0]['#type'] == 'date_combo') {
      // Add our after build function
      $form['field_date'][$form['field_date']['#language']]['#after_build'][] = 'sandbox_field_date_after_build';
    }
  } 
}

/**
 * After build callback
 * @param array $element
 * @param array $form_state
 * @return array
 */
function sandbox_field_date_after_build($element, &amp;$form_state) {
  // Loop through each delta if more than 1 value  
  foreach(element_children($element) as $delta) {
    // Loop through each granularity e.g. month, day, year, hour, minute, second
    foreach(element_children($element[$delta]['value']) as $key) {
      // #options not set means this type of granularity isn't set, so we skip
      if(isset($element[$delta]['value'][$key]['#options'])) {
        // If there's an empty value, change the option label to be '- [#title] -'
        if(isset($element[$delta]['value'][$key]['#options'][''])) {
          $element[$delta]['value'][$key]['#options'][''] = '- ' . $element[$delta]['value'][$key]['#title'] . ' -';
        }
        // Otherwise insert an empty value at beginning with label '- [#title] -'
        else {
          array_unshift($element[$delta]['value'][$key]['#options'], array('' =&gt; '- '. $element[$delta]['value'][$key]['#title'] . ' -'));
        }
        // Make the title invisible
        $element[$delta]['value'][$key]['#title_display'] = 'invisible';
      }
    }
  }

  return $element;
}


Which produces this result provided you have set "No default value" in the field instance setting:


Or you can always do it in the Advanced Settings of any date field.