日付や時刻に関する情報を操作する際、PHPで非常に便利な関数の一つが「date関数」です。
この関数を利用することで、現在の日付や時刻を取得したり、指定したフォーマットに基づいて日付や時刻を整形することが可能となります。初心者の方でも簡単に使えるよう、この記事ではdate関数の基本的な使い方を丁寧に解説していきます。
忍者CODEの学習は“実践型”!
だから結果を出せる!
●初めてIT業界にチャレンジする方
∟はじめての方でも安心して学習できるように、基礎知識から実践的な課題までプロへのロードマップが分かりやすいカリキュラムを採用。
●副業に有利なことを探されている方
∟未経験からでもスキルを習得できる“実践的カリキュラム”と、学習だけでなく受講後もプロのメンターがマンツーマンで徹底的に副業サポートまで行い、受講後は必ず案件をご紹介するプランの副業・案件”保証”プランもあります。
●業界最安級の受講費用で始めやすい
∟月額9,8000円から始められる忍者CODEのプログラミングスクールは業界でも最安級!それでも学習し放題、サポートは無期限・無制限と、プロのメンターとエンジニアを筆頭に、皆さんを徹底的にサポートします。

\最短1時間後の当日予約も可能!/無料メンター相談のご予約
PHPのdate関数とは?
PHPのdate関数は、Unixのタイムスタンプを元に日付や時刻を文字列として返すための関数です。
Unixのタイムスタンプとは、1970年1月1日からの経過秒数を表す整数値であり、これを利用することで日付や時刻の情報を取得することができます。date関数はこのタイムスタンプをもとに、さまざまな形式で日付や時刻を出力します。
date関数の基本的な構文
date関数は以下のように記述します。
string date ( string $format [, int $timestamp = time() ] )
引数として、フォーマットとタイムスタンプを受け取りますが、タイムスタンプは省略可能です。省略した場合は、現在のタイムスタンプ(現在の日付と時刻)が自動的に使用されます。返り値は、指定したフォーマットに基づいて整形された日付や時刻を表す文字列となります。
PHPのdate関数の使い方
PHPのdate関数を使う際には、指定したフォーマットに従って日付や時刻を整形することができます。日付や時刻の情報はUnixのタイムスタンプとして表されるため、それを日付や時刻の文字列に変換することがdate関数の主な目的です。
基本的な日付のフォーマット
date関数では、日付や時刻をフォーマットするための特別な文字列を使用します。以下によく使われるフォーマット文字列を示します。
- Y:年(4桁)
- y:年(2桁)
- m:月(2桁、01から12)
- n:月(1から12)
- d:日(2桁、01から31)
- j:日(1から31)
- H:時(24時間制、00から23)
- h:時(12時間制、01から12)
- i:分(00から59)
- s:秒(00から59)
- A:午前または午後(大文字、AMまたはPM)
- a:午前または午後(小文字、amまたはpm)
date関数の使用例
例として、現在の日付と時刻を取得し、いくつかのフォーマットで表示するコードを示します。
<?php
// 現在の日付と時刻を取得
$currentTimestamp = time();
// 基本的なフォーマットで日付と時刻を表示
echo date("Y-m-d H:i:s", $currentTimestamp); // 出力例:2023-07-27 15:30:00
// 別のフォーマットで日付と時刻を表示
echo date("Y年m月d日 (D) H時i分s秒", $currentTimestamp); // 出力例:2023年07月27日 (Thu) 15時30分00秒
?>
このように、date関数を使うことで、指定したフォーマットに従った日付や時刻の文字列を取得することができます。日付や時刻のフォーマットはさまざまな用途に応じてカスタマイズすることができるので、柔軟に利用してみてください。
PHPのdate関数で指定日時の情報をフォーマットする
date関数を使って、特定の日付や時刻の情報を指定したフォーマットで表示する方法を解説します。これは特に、データベースから取得した日時を適切な形式で表示したり、ユーザーが入力した日付を整形して処理したりする場合に便利です。
date関数で指定日時をフォーマットする方法
date関数では、第2引数にタイムスタンプとして日時の情報を渡すことで、その日時を指定したフォーマットで整形できます。また、指定しなかった場合は自動的に現在の日時が使われます。
以下に、date関数を使用して指定した日時を様々なフォーマットで表示する例を示します。
<?php
// 指定日時のタイムスタンプを取得(例:2023年7月27日 12時30分0秒)
$timestamp = mktime(12, 30, 0, 7, 27, 2023);
// 指定日時をフォーマットして表示
echo date("Y年m月d日 H時i分s秒", $timestamp); // 出力例:2023年07月27日 12時30分00秒
echo date("D, d M Y", $timestamp); // 出力例:Thu, 27 Jul 2023
echo date("Y-m-d", $timestamp); // 出力例:2023-07-27
?>
タイムスタンプの取得方法
上記の例では、mktime関数を使用して指定日時のタイムスタンプを取得しましたが、他にも様々な方法でタイムスタンプを得ることができます。
- time関数
現在のタイムスタンプを取得します。 - strtotime関数
指定した日時の文字列からタイムスタンプを取得します。例:strtotime("2023-07-27 12:30:00")
- DateTimeクラス
DateTimeオブジェクトを使ってタイムスタンプを取得します。
フォーマット文字列のカスタマイズ
フォーマット文字列には、前述のように「Y」「m」「d」などの基本的なフォーマット以外にも、さまざまなオプションが用意されています。例えば、週の曜日を日本語で表示する「l」や、12時間制の時刻をゼロなしで表示する「g」などがあります。
カスタマイズしたいフォーマットに応じて、date関数の引数として適切なフォーマット文字列を指定してください。
PHPのdate関数とstrtotime関数で相対日時を出力する
PHPのdate関数とstrtotime関数を組み合わせることで、現在の日時から相対的な日時を求めたり表示したりすることができます。相対日時は、例えば「1日後」、「1週間前」、「1時間後」など、現在の日時からの時間の差を表すことができます。
strtotime関数の概要
strtotime関数は、人間が理解しやすい日時の文字列を解析して、Unixのタイムスタンプとして返す関数です。このタイムスタンプをdate関数に渡すことで、相対日時を文字列として出力できます。
strtotime関数での相対日時の指定
strtotime関数では、次のような相対日時の指定が可能です。
- “+n day”:n日後の日時
- “-n day”:n日前の日時
- “+n week”:n週間後の日時
- “-n week”:n週間前の日時
- “+n month”:nヶ月後の日時
- “-n month”:nヶ月前の日時
- “+n year”:n年後の日時
- “-n year”:n年前の日時
- “next Monday”:次の月曜日の日時
- “last Sunday”:前の日曜日の日時
strtotime関数を使った相対日時の出力例
以下に、strtotime関数を使用して相対日時を計算し、date関数でフォーマットして表示する例を示します。
<?php
// 現在の日時を取得
$currentTimestamp = time();
// 1日後の日時を計算して表示
$nextDayTimestamp = strtotime("+1 day", $currentTimestamp);
echo date("Y-m-d H:i:s", $nextDayTimestamp); // 出力例:2023-07-28 15:30:00
// 1週間前の日時を計算して表示
$lastWeekTimestamp = strtotime("-1 week", $currentTimestamp);
echo date("Y-m-d H:i:s", $lastWeekTimestamp); // 出力例:2023-07-20 15:30:00
// 2ヶ月後の日時を計算して表示
$nextMonthTimestamp = strtotime("+2 month", $currentTimestamp);
echo date("Y-m-d H:i:s", $nextMonthTimestamp); // 出力例:2023-09-27 15:30:00
?>
このように、strtotime関数を使うことで、相対的な日時を簡単に計算できます。相対日時の指定方法は柔軟であり、特定の日時からの相対的な時間の差を求める際に便利です。
注意点
strtotime関数は人間が理解しやすい形式の日時を解釈することができますが、曖昧な表現や一部の日付フォーマットでは正確な結果が得られない場合があります。
特に、国や地域によって日付の表現が異なる場合には注意が必要です。必要に応じて、strtotime関数の解釈結果を確認して正確な相対日時を取得するようにしてください。
まとめ
この記事では、PHPのdate関数について初心者向けに解説しました。date関数を使用することで、現在の日付や時刻を取得したり、指定したフォーマットに基づいて日付や時刻を整形したりすることができます。
基本的なフォーマット文字列やタイムスタンプの取得方法、さらにはstrtotime関数を組み合わせて相対日時を出力する方法まで学びました。これらの知識を活用することで、日付と時刻を柔軟に操作し、便利なプログラムを作成できるでしょう。
ぜひ積極的にPHPのdate関数を活用して、自分のプロジェクトに役立ててみてください。

挫折することなくエンジニアを目指すなら
独学?スクール?
これからHTMLやCSSなどといったプログラミング言語の学習を始めようと考えている方、または最近学習を始めた方がいらっしゃるかと思います。
ただ、実際に学習を始めるとなると
どこをゴールにしていいかわからない…
挫折してしまわないかな…
このように不安な気持ちになる方もいますよね。
たしかに、何かわからないことが出てきたとき、エラーが解決できないとき、誰かに相談できる環境がないことが理由でプログラミング言語の学習を挫折する方が多くいます。
実際にプログラミング言語初学者が挫折をする1番の理由は「不明点が発生した際に気軽に相談できる環境がない」という実態があります。
それだけ学習する環境が大事だということです。
そんな背景があるからこそ、プログラミングの勉強をする際にスクールを選ぶ方が多いのが事実です。
プログラミングスクールに通う理由は他にもあり
・効率良く学習を進めたい
・モチベーションの維持にもつながりそう
・以前に独学で挫折した経験がある
・学習者同士でつながれるコミュニティへの招待