By name, date_select generates <select> elements. Without version (X) HTML, the select element supports the type attribute. If you want a hidden form field, you must use the hidden_field helper, which generates <input type="hidden"> elements.
(To answer your proposed usage question, for example :class => 'something' , the problem is that the options and html_arguments must be two separate hashes, but if you do something like this:
<%= f.date_select :date, :default => @date, :class => 'something' %>
.. the Ruby interpreter assumes that you have provided one hash, i.e. { :default => @date, :class => 'something' } (and really, can you blame him?), and since class not a valid key for the options hash are ignored. Instead, you should make it obvious to Ruby that these are two separate parameters by doing something like this:
<%= f.date_select :date, :default => @date, { :class => 'something' } %> <%
See the difference? Of course, you could go to battle and be really obvious, for example:
<%= f.date_select(:date, { :default => @date }, { :class => 'something' }) %>
.. but it's ugly and egregious, so don't worry.)