【PHP入門】date関数の基本的な使い方

こんにちは!フリーエンジニアのせきです。

PHPには日付や時刻を書式化するdate関数があります。

この記事では、

・date関数について知りたい
・date関数の基本的な使い方について知りたい

という基本的な内容から、

・絶対日時を取得する方法を知りたい
・相対日時を取得する方法を知りたい

といった応用的な使い方に関しても解説していきます。

今回はそんなdate関数について、わかりやすく解説します!

date関数とは?

date関数は指定された日時を任意の形式でフォーマットし、日付文字列を返す関数です。

第一引数にフォーマット文字列を指定します。
第二引数を省略した場合は、現在日時が第一引数で指定した形式でフォーマットされます。

第二引数にUNIXタイムスタンプを指定した場合は、そのUNIXタイムスタンプがフォーマットされます。
UNIXタイムスタンプとは、1970年1月1日からの秒数です。

サポートされているフォーマット文字列については、以下のページに記載しています。
http://php.net/manual/ja/function.date.php

date関数の使い方

まず、現在日付や現在日時のフォーマットをしてみます。
第一引数にフォーマット文字列を指定し、第二引数は省略します。

次に、第二引数にUNIXタイムスタンプを指定してフォーマットしてみます。

UNIXタイムスタンプは1970年1月1日からの秒数なので、「10」を指定するとこのような実行結果になります。

指定日時を取得する方法

指定した日時のUNIXタイムスタンプを取得するには、strtotime関数を使います。

第一引数に取得したい日時文字列を指定します。
第二引数を省略した場合は、現在を基準とした第一引数の日時のUNIXタイムスタンプを返します。

第二引数にUNIXタイムスタンプを指定した場合は、そのUNIXタイムスタンプを基準とした第一引数の日時のUNIXタイムスタンプを返します。

strtotime関数は、「絶対日時」「相対日時」で日時を指定して取得できます。

絶対日時を取得する

2017年4月1日10時20分30秒のUNIXタイムスタンプを取得したい場合は、次のように記述します。

date関数と組み合わせて使うことで、任意の日時をフォーマットして表示することができます。

strtotime関数で取得した日時を、date関数でフォーマットして表示できました。

相対日時を取得する

strtotime関数は、「○日後」「○か月後」といった指定の相対日時を取得することもできます。
第一引数を数字と単位の組み合わせで指定します。

この例では第二引数を省略したので、現在からの相対日時が取得できます。

UNIXタイムスタンプのままではわかりづらいので、date関数を使ってフォーマットします。

第二引数にUNIXタイムスタンプを指定すると、そのタイムスタンプからの相対日時が取得できます。

最初に、相対日時の基準となるUNIXタイムスタンプを、strtotime関数の絶対日時を取得する方法で取得しています。

それを第二引数に渡し、’2017-4-1 10:20:30’からの相対日時が取得できています。
この例もdate関数を使ってフォーマットして表示しています。

date関数についてもっと詳しく知りたい方へ

date関数のさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

strtotime関数についてもっと知りたい方へ

ここで紹介したstrtotime関数の使い方については、以下の記事でもさまざまな使い方を紹介しています。

strtotime関数について、もっと知りたい方は以下の記事もぜひ参考にしてください!

まとめ

今回はdate関数の使い方やstrtotime関数での指定日時の取得方法について解説しました。

日付を扱う関数はたくさんありますが、日付文字列を返すdate関数は他の関数と組み合わせて使う機会が多いです。

date関数の使い方、指定日時の取得方法を忘れてしまったら、この記事を思い出して下さい!

最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

LINEで送る
Pocket

書いた人

せき

せき

フリーランスでWebシステム開発やゲーム開発をしています。
読者の方にプログラミングの面白さをお伝えしたいです。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説