50の手習い~人生実験室

人生100年時代。50歳から人生を開拓出来るのか?自分の身体を使って実験中

JSのDateクラス

let d = new Date(); ←引数を指定しない場合は変数dに現在の日時が代入される。
注意点としては「月」は0~11の数字が返される。つまり、1月だったら0、9月だったら8が返される。これがややこしく感じてたまりません。

その理屈だと2020年9月2日を表したい際は「new Date(2020, 10, 2);」としなければならない。と思ったのですが、直接引数に値を入力してgetMonth()で月の値を引っ張るとちゃんと9が返ってくるんですよね。
う~~~~ん、わからない。
直接数値で入れた場合はその値が返るのでしょうか・・・


indexも0から始まるけど、そもそも何でもカウントは1から始まるものだと思って生きてきた人間にとってはあるあるですよね(笑)
こればかりは慣れるしかないし慣れるまでは仕方がないのだろう。
でもだったら年や日も0から始めればいいのに、そして他の言語だったら月も1から始まる値が返されたりするのに~と、不満タラタラです(笑)

16進数とかも正直難しく感じます。16進数を使う機会は今のところないんですけどね、CSSの色指定だってカラーパレットを使えば済む話だし。

 

そして、Dateクラスのオブジェクトから値を得るメソッドについて、
getFullYearとか、getFullMonthは読んで字のごとく年なのねとか月なのねとわかるのですが、
日はgetDateで、getDayは曜日を取得します。私は日を取得するのはgetDateだと思い込んでいました。こういうのは慣れるしかないしそもそもググりながらコードは書くものだからそこまで気にしなくてもいいのか。

問題は直接値を入力してgetMonth()で月の値を取得した時に0~11の値で返ってこない問題です。マジで腑に落ちないです・・・