scaffold でモデルを作成した際に、recorded_at:datetime といった datetime の型を指定したときなどに自動生成される、datetime_select ヘルパーについてのメモ。
何もオプションをしていしない場合は、
<%= form_for(@record) do |f| %>
<%= f.datetime_select :recorded_at %>
<% end %>
以下のHTMLが出力されますが、
— :
以下のように、オプションを指定すると、
22 <div class="field">
23 <%= f.label :recorded_at %><br />
24 <%= f.datetime_select :recorded_at %>デフォルトのまま。<br>
25 <%= f.datetime_select :recorded_at, :discard_hour => true, :discard_minute => true %>時と分を無効に。<br>
26 <%= f.datetime_select :recorded_at, :use_month_numbers => true, :start_year => 2010, :end_year => Time.now.year, :date_separator => "/" %>月を数字にして、日付の区切りを/に。開始年と終了年を指定。<br>
27 <%= f.datetime_select :recorded_at, :use_month_numbers => true, :start_year => 2010, :end_year => Time.now.year, :default => Time.at((Time.now.to_i/86400)*86400).utc %>時間を今日の00:00に変更。<br>
28 <%= f.datetime_select :recorded_at, :start_year => 2010, :end_year => Time.now.year, :use_month_names => %w(睦月 如月 弥生 卯月 皐月 水無月 文月 葉月 長月 神無月 霜月 師走) %>月の表示を和暦に。
29 </div>
次のようなHTMLが出力されます。
—
:
デフォルトのまま。
時と分を無効に。
/
/
—
:
月を数字にして、日付の区切りを/に。開始年と終了年を指定。
—
:
時間を今日の00:00に変更。
—
:
月の表示を和暦に。
和暦なんてまず使わないだろうけど、メモ。
詳細は、http://api.rubyonrails.org/ で datetime_select, select_month などで検索したり、
./actionpack-3.1.3/lib/action_view/helpers/date_helper.rb の datetime_select から読むとわかりやすいです。
追記:
一日の始まりは、Time.beginning_of_day でできるらしい。