【PHP入門】date関数の基本的な使い方を初心者向けに解説!

プログラミング言語の辞書

日付や時刻に関する情報を操作する際、PHPで非常に便利な関数の一つが「date関数」です。

この関数を利用することで、現在の日付や時刻を取得したり、指定したフォーマットに基づいて日付や時刻を整形することが可能となります。初心者の方でも簡単に使えるよう、この記事ではdate関数の基本的な使い方を丁寧に解説していきます。

忍者CODEの学習は“実践型”!
だから
結果を出せる!

忍者CODE

●初めてIT業界にチャレンジする方
∟はじめての方でも安心して学習できるように、基礎知識から実践的な課題までプロへのロードマップが分かりやすいカリキュラムを採用。
●副業に有利なことを探されている方
∟未経験からでもスキルを習得できる“実践的カリキュラム”と、学習だけでなく受講後もプロのメンターがマンツーマンで徹底的に副業サポートまで行い、受講後は必ず案件をご紹介するプランの副業・案件”保証”プランもあります。
●業界最安級の受講費用で始めやすい
∟月額9,8000円から始められる忍者CODEのプログラミングスクールは業界でも最安級!それでも学習し放題、サポートは無期限・無制限と、プロのメンターとエンジニアを筆頭に、皆さんを徹底的にサポートします。

まずは自分の適性プラン診断から!
適正コース診断

PHPのdate関数とは?

PHPのdate関数は、Unixのタイムスタンプを元に日付や時刻を文字列として返すための関数です。

Unixのタイムスタンプとは、1970年1月1日からの経過秒数を表す整数値であり、これを利用することで日付や時刻の情報を取得することができます。date関数はこのタイムスタンプをもとに、さまざまな形式で日付や時刻を出力します。

date関数の基本的な構文

date関数は以下のように記述します。

string date ( string $format [, int $timestamp = time() ] )

引数として、フォーマットとタイムスタンプを受け取りますが、タイムスタンプは省略可能です。省略した場合は、現在のタイムスタンプ(現在の日付と時刻)が自動的に使用されます。返り値は、指定したフォーマットに基づいて整形された日付や時刻を表す文字列となります。

PHPの基礎を無料で学ぶ方はこちら▶

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関数を使うことで、指定したフォーマットに従った日付や時刻の文字列を取得することができます。日付や時刻のフォーマットはさまざまな用途に応じてカスタマイズすることができるので、柔軟に利用してみてください。

全49問!PHP無料問題集はコチラ▶

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関数の引数として適切なフォーマット文字列を指定してください。
全49問!PHP無料問題集はコチラ▶

プログラミングスクールなら
忍者CODE

適正コース診断2

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関数の解釈結果を確認して正確な相対日時を取得するようにしてください。

全49問!PHP無料問題集はコチラ▶

まとめ

この記事では、PHPのdate関数について初心者向けに解説しました。date関数を使用することで、現在の日付や時刻を取得したり、指定したフォーマットに基づいて日付や時刻を整形したりすることができます。

基本的なフォーマット文字列やタイムスタンプの取得方法、さらにはstrtotime関数を組み合わせて相対日時を出力する方法まで学びました。これらの知識を活用することで、日付と時刻を柔軟に操作し、便利なプログラムを作成できるでしょう。

ぜひ積極的にPHPのdate関数を活用して、自分のプロジェクトに役立ててみてください。

PHPの配列(array)とは?使い方やメリットなどを一挙解説!
PHPの配列について一挙解説します。PHPの配列は、複数の値をひとつの変数に格納する強力な機能です。異なるデータ型を組み合わせることができ、リストやデータの管理に便利。ループ処理やデータの追加・削除が簡単で、効率的なプログラミングが可能です。連想配列や多次元配列も利用でき、さらなる柔軟性を持たせることができます。

挫折することなくエンジニアを目指すなら

独学?スクール?

これからHTMLやCSSなどといったプログラミング言語の学習を始めようと考えている方、または最近学習を始めた方がいらっしゃるかと思います。

ただ、実際に学習を始めるとなると

1人で学習を進められるかな…
どこをゴールにしていいかわからない…
挫折してしまわないかな…

このように不安な気持ちになる方もいますよね。

たしかに、何かわからないことが出てきたとき、エラーが解決できないとき、誰かに相談できる環境がないことが理由でプログラミング言語の学習を挫折する方が多くいます。

実際にプログラミング言語初学者が挫折をする1番の理由は「不明点が発生した際に気軽に相談できる環境がない」という実態があります。

それだけ学習する環境が大事だということです。

そんな背景があるからこそ、プログラミングの勉強をする際にスクールを選ぶ方が多いのが事実です。

プログラミングスクールに通う理由は他にもあり

・確実にスキルを身に着けたい
・効率良く学習を進めたい
・モチベーションの維持にもつながりそう
・以前に独学で挫折した経験がある
このように「確実に!」「効率良く!」といった声もよく上がります。
やはり途中で挫折してしまったり、どこを目指しているのかわからなくなったりした場合、「プログラミングを学習することは難しい」と認識してしまい、その後のスキル習得を諦めてしまう可能性が非常に高くなります。
このようなことから、社会人で時間もそこまでないため短期間でスキルを習得したい人や独学で進めるのが不安な人が効率性や確実性を求め、プロの講師に相談できる環境が用意されているプログラミングスクールを選択するのがわかります。
「転職をしたい」「副業で稼げるようになりたい」という理由でプログラミング言語を学び始めたとき、わからない箇所を飛ばしてそのままに放置して学習を進めたとしても、目標とする転職や副業が実現するほどのスキルが身につかなければ多くの時間を費やして何も得られないという結果になります。
ですので、1人でHTMLやCSSなどといったプログラミングスキルの習得ができるか不安な方は多少の費用をかけてでも、不明点をすぐに相談・解決できる環境や効率良く学習できる有料サービスを選ぶのがベストだと言えます。
そこでおすすめしたいのが「忍者CODE」です。
忍者CODEをおすすめする1番の理由は「業界最安級の金額でありながら圧倒的学習ボリュームと半永久サポートを提供している」ところにあります。
上記でお伝えしたように、初学者の多くは独力で不明点や問題点を解決できないためにプログラミングの学習を挫折しています。そのため、初学者が経験豊富なプロのエンジニアに相談できない環境下でプログラミングスキルの習得をするのは難易度が高いと言えます。
ですが、忍者CODEでは
・チャットでいつでも、無制限で質問可能
・学習者同士でつながれるコミュニティへの招待
などといったサポート体制を設けているため、学習を進めていく中で出てきた問題点や不明点をスムーズに解決しながら、挫折することなくプログラミングスキルの習得が可能です。
また、忍者CODEでは動画コンテンツにて学習を進めていくため、スッと頭に入ってきやすいようになっているのも特徴です。
未経験でも挫折させないオンラインスクールとして、受講生に寄り添った学習コンテンツを提供している忍者CODEをより詳しく知りたい方はぜひ公式サイトをご覧ください。