text_fieldでtime型データの表示
railsのform_forで、text_fieldにtime型のデータを表示させたい時にうまく時間だけを表示できなかったのでその対策です。
環境
Rails 5.2.3
留意点
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要素の値を指定する属性。テキスト入力欄などにおいては初期入力値、チェックボックスやラジオボタンにおいては選択した時にだけ送信する値、送信ボタンなどにおいてはボタン名を表す。
なるほど、テキスト入力では初期値ですか。
そう考えればスッキリします。
Author And Source
この問題について(text_fieldでtime型データの表示), 我々は、より多くの情報をここで見つけました https://qiita.com/hukuro310/items/a35d54cfd7e18ffd4087著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .