Help us understand the problem. What is going on with this article?

デフォルトで今日の日付日時を表示する方法:秒以下を除去

【概要】

1.結論

2.どのように記載するか

3.ここから学んだこと

1.結論

(任意の変数).toISOString().slice(0, -8)を使用する

2.どのように記載するか

前提として、

new.html.erb
<%= f.datetime_field :study_date ,id:"datetime_field"%>

で設定しています。

datetime_fieldメソッドは
=***.toISOString().slice(0, -8);をすることにより、
今日の年、月、時間、分までをデフォルトに表記することができます。

***.html.erb
<script>
  var today_time = new Date();
   now.setMinutes(today_time.getMinutes() - now.getTimezoneOffset()); #----❶
    document.getElementById('datetime_field').value = today_time.toISOString().slice(0, -8); #----❷
</script>

と記載しました。
html.erbに記述しておりますので"script"で囲み、更新するとconsoleで変数の定義がされているとエラーがでたのでvarにしています。❶❷までについては下記のURLで触れられている通り表示される時刻はUTC表記(❷)になるので、前もってUTCの差分(❶)に合わせています。

参考にしたURL:
HTML5 に現在時刻を設定するには

3.ここから学んだこと

自分は最初に

****.html.erb
<f.date_field :****, value:Time.now.strftime("%Y-%m-%d")>

を使用していました。value:Time.now.strftime("%Y-%m-%d")を入れてあげるとページが表示された段階で現在の日付が自動で入力されます。

かなり参考にしたURL:
Railsのdate_fieldにてデフォルト値を設定する

しかし、f.datetime_fieldの場合は、valueに上記のものを入れたり、Time.nowにすると

The specified value "2020 9/16 12:05" does not conform to the required format.  The format is "yyyy-MM-ddThh:mm" followed by optional ":ss" or ":ss.SSS".

と出てしまいました。
基準通りの記述を満たせていないということで、認識されていないということでした。なので上記の方法で行いましたが、slice(0,-1)をあまり理解できていないことに気づきました。slice(start,end)はstartから始まる文字~endの手前の数分だけを取り出すので、上記のように書くことで”ss.SSS(秒以下の時間)”を省くことができました。

参考にしたURL:
sliceメソッド


taka_no_okapi
『笑謝を、自分らしく、続け、』 #100DaysOfCode #HTML #CSS #Javascript #Ruby 勉強中! プログラムまったくの未経験、0の状態から学習中! みなさんが同じところでつまずいた際に 少しでも共有できればと思い、作りました!
https://twitter.com/taka_no_okapi
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした