icon
icon

JavaScriptでDateオブジェクトを使って翌日の日付を取得する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptでDateオブジェクトを使って翌日の日付を取得する方法について解説しています。Dateオブジェクトは日付を扱うオブジェクトです。Dateオブジェクトの基本の使い方、翌日の日付を取得する場合の書き方について覚えていきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

JavaScriptでDateオブジェクトを使って翌日の日付を取得する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプJavaScript/jQuery講座の内容をもとにしています。

 

田島悠介

今回は、JavaScriptに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Dateオブジェクトを使って翌日の日付を取得する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

Dateオブジェクトとは

Dateオブジェクトとは、日付を取得したり、計算するためのJavascript標準の組み込みオブジェクトです。これが使えるようになると

  • 現在の日時を取得することができる
  • 特定の経過時間を加算/減産することができる
  • 任意の日付を取得することができる
1時間でできる無料体験!

など、日時に関する様々な仕組みを作ることができるようになります。

 

Dateオブジェクトの使い方

Dateオブジェクトは、new演算子によりインスタンス化して使います。

var dateObj = new Date();

このdateObjをconsoleに出力すると、以下のように日付情報が得られます。

console.log( dateObj );

出力結果:

Mon Feb 03 2020 10:23:50 GMT+0900 (日本標準時)

インスタンス化する理由

日付情報は常に変化していますので、特定の瞬間の時刻情報で固定する必要があります。先ほど紹介したコードでは引数無しの初期化処理がされ、コード実行時点での日付時刻情報がセットされた dateObj 変数を用意することができます。

この場合の「インスタンス化」とは、必要な初期情報を全てセット済みのDateオブジェクトを用意しました、ということです。そのため、以下の操作により年情報、月情報が得られます。

var yearNum  = dateObj.getFullYear() ; // yearNum  = 2020 
var monthNum = dateObj.getMonth() + 1 ;    // monthNum = 2

Javascriptでは、月の情報を0~11の数値で保持するため、月の情報を取得する場合、getMonth()メソッドで得られた値に+1する必要があります。

また、インスタンス化した時点で保持する情報は固定されますから、先ほどのdateObjを30分経過した後に再度console出力した場合においても、表示される時刻情報は変わりません。

初期値を指定したインスタンス化について

インスタンス生成時に初期値を設定することで、特定の日付情報(初期値)を持ったインスタンスを生成できます。

例えば、2020年8月1日10時00分の情報を持ったインスタンス生成は、以下のコードで可能です。

// 月は実際の月 -1 の値を指定する

var oneDay = new Date(2020,7,1,10,00)

 

[PR] フロントエンドで副業する学習方法を動画で公開中

今日の日付を取得する方法

先ほどインスタンス化した変数からgetDate()メソッドを実行するだけです。

var dayNum = dateObj.getDate() ;  // dayNum = 3

 

翌日の日付を取得する方法

今日の日付に+1するだけでは、カレンダー通りに日付が得られない場合があります。そのため、Dateオブジェクトには日付計算用のsetDate()メソッドが用意されています。

// dateObjが保持する日付を1日未来に加算する
dateObj.setDate( dateObj.getDate() + 1 );

// 加算された状態のインスタンスが持つ日付を取得する
var tomorrowNum = dateObj.getDate(); // tomorrowNum = 4

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

実際に書いてみよう

日本語で2月3日に日付を取得し、翌日の2月4日の日付情報を漢字付きで表示するプログラムを書いてみましょう。

var tomorrow = new Date();
// 日付の確認(本日日付)
console.log( "取得したdateインスタンス情報:", tomorrow );
// 1日未来に加算する
tomorrow.setDate( tomorrow.getDate() + 1 );
// 日付の確認(明日の日付)
console.log( "加算後のdateインスタンス情報:", tomorrow );
 
var yearNum = tomorrow.getFullYear(); // not getYear()
var monthNum = tomorrow.getMonth() + 1 ;
var dayNum = tomorrow.getDate(); // not getDay()
var jpDateStr = String( yearNum ) + "年" 
                   + String( monthNum ) + "月"
                   + String( dayNum ) + "日" ;
console.log( "明日は、", jpDateStr );

実行結果

取得したdateインスタンス情報: Mon Feb 03 2020 18:22:57 GMT+0900 (日本標準時)
加算後のdateインスタンス情報: Tue Feb 04 2020 18:22:57 GMT+0900 (日本標準時)
明日は、 2020年2月4日

 

まとめ

Javascriptにおける日付の計算はDateオブジェクトを使います。インスタンスや初期化という概念や、年月日表示での日付が簡単に得られない等やや扱いが難しいですが、サンプルコードを参考にぜひ扱い方を覚えましょう。

 

1時間でできる無料体験!

監修してくれたメンター

寺谷文宏

WEBアプリケーションエンジニアとして数多くのプロジェクトを経験し、フロントエンドからサーバーサイドまで総合的な開発を得意としています。

TechAchademyではフロントエンド、Javaコースを担当。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でもJavaScript・jQueryを使ったWebサービス公開を習得できるオンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する