1
0

More than 3 years have passed since last update.

【JavaScript】new Date()で今日の日付の時間と分を指定をしたい

Last updated at Posted at 2020-04-05

やりたいこと

今日の日付の時間と分を指定したい。
例えば、今日が2020年4月5日だとして、new Date()で以下のようになるのを

Sun Apr 01 2020 12:15:00 GMT+0900 (日本標準時)

時間と分を指定したい。
今日の12時30分を指定したいなら

Sun Apr 01 2020 12:30:00 GMT+0900 (日本標準時)

方法

まず、new Date()をすると

new Date()
=> Sun Apr 05 2020 12:15:30 GMT+0900 (日本標準時)

今日の日付と時間が取得できます!

 
で次に、new Date(2020, 5, 10, 10, 10)とすると

new Date(2020, 3, 10, 15, 20)
=> Fri Apr 10 2020 10:15:20 GMT+0900 (日本標準時)

指定した日付と時間が取得できますね!

なので、今日の日付の時間と分を指定したい場合、
例えば今日が4月5日で10時10分を指定したかったらnew Date(2020, 3, 5, 10, 10)
とすれば指定した今日の日付の時間と分を取得できます。

しかし問題が!
「今日」というのを動的に変えたい場合、年や日付も指定してしまっているのでこれでは良くないです...。(4月5日の今日は4月5日だし、4月10日の今日は4月10日なので)

なのでこうする

今日の日付を4月5日として、10時10分を指定したい場合、

const date = new Date() // 今日の日付
date.setHours(10) // getHoursで時間を指定
date.setMinutes(10) // getHoursで分を指定
console.log(date)
// => Fri Apr 5 2020 10:10:20 GMT+0900 (日本標準時)

(結論)面倒くさいのでこうできる

setMinutesを使わなくても、
setHoursの第一引数で「時間」、第二引数で「分」を指定できるみたいです。
setHours(hour, minute)(知らなかった... ><)

const date = new Date() // 今日の日付
date.setHours(10, 10) // getHoursで時間と分を指定
console.log(date)
// => Fri Apr 5 2020 10:10:20 GMT+0900 (日本標準時)

これで「今日」の時間と分を指定できました〜!


JavaScript の Date は罠が多すぎる
とりあえず、上記の記事にも書いているみたいに色々とJSのDateは面倒なのでできるだけ使いたくない...。

使う場面が多い場合はmoment.jsとかdayjs、date-fnsとかのライブラリを使った方が良さげ。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0