Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

text_fieldでtime型データの表示

railsのform_forで、text_fieldにtime型のデータを表示させたい時にうまく時間だけを表示できなかったのでその対策です。

環境

Rails 5.2.3

留意点

htmlはhamlで記述しています。

コード

◯◯.html.haml
= form_for @schedule do |f|
 = f.text_field :next_time, placeholder: "クリックしてください", value: "#{@schedule.next_time.strftime('%H:%M')}"

valueを設定してあげればよかったんですね。
next_timeがtime型で保存しているデータになります。
これにstrftime('%H:%M')をつければ万事解決。
ちなみに、このvalueがないと・・・

こうなります。

(補足1)UTC
「UTC」は「協定世界時」のことで、英語だとCoordinated Universal Timeらしいです。
セシウム原子の振動数をもとに導き出す時間で、今の世界で標準時として使っている時間のことらしいですが、ざっくり言えば日本時間から9時間引いた時間のことみたいです。

これを時間だけの表示にしたかったので、先ほどのvalueを設定してあげると・・・

こうなります。
結構単純でしたね。

(補足2)value属性
この問題にぶち当たった時に改めてvalue属性ってなんぞや?となったので記載しておきます。
HTML5入門より

input要素のvalue属性は、input要素の値を指定する属性。テキスト入力欄などにおいては初期入力値、チェックボックスやラジオボタンにおいては選択した時にだけ送信する値、送信ボタンなどにおいてはボタン名を表す。

なるほど、テキスト入力では初期値ですか。
そう考えればスッキリします。

hukuro310
2019年7月からプログラミングスクールに通って、主にRuby, Railsについて勉強していました。 2020年4月からプログラマーとして働かせていただくことになりました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away