日付や時刻に関する情報を操作する際、PHPで非常に便利な関数の一つが「date関数」です。
この関数を利用することで、現在の日付や時刻を取得したり、指定したフォーマットに基づいて日付や時刻を整形することが可能となります。初心者の方でも簡単に使えるよう、この記事ではdate関数の基本的な使い方を丁寧に解説していきます。
忍者CODEマガジンは、未経験からでもプロのエンジニアを目指せるプログラミングスクール「忍者CODE」が運営しているプログラミング情報サイトです。
- プログラミングの効果的な学習方法
- プログラミング用語の解説
- エンジニアのキャリアに関する情報
など、プログラミングを始めたばかりの初学者に役立つ記事を幅広く公開しています!
PHPのdate関数とは?
PHPのdate関数は、Unixのタイムスタンプを元に日付や時刻を文字列として返すための関数です。
Unixのタイムスタンプとは、1970年1月1日からの経過秒数を表す整数値であり、これを利用することで日付や時刻の情報を取得することができます。date関数はこのタイムスタンプをもとに、さまざまな形式で日付や時刻を出力します。
date関数の基本的な構文
date関数は以下のように記述します。
string date ( string $format [, int $timestamp = time() ] )
引数として、フォーマットとタイムスタンプを受け取りますが、タイムスタンプは省略可能です。省略した場合は、現在のタイムスタンプ(現在の日付と時刻)が自動的に使用されます。返り値は、指定したフォーマットに基づいて整形された日付や時刻を表す文字列となります。
PHPの講義動画を無料で見れる入門講座
PHPの学習に迷った方はまずはPHP入門講座をチェックしましょう!
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関数を使うことで、指定したフォーマットに従った日付や時刻の文字列を取得することができます。日付や時刻のフォーマットはさまざまな用途に応じてカスタマイズすることができるので、柔軟に利用してみてください。
- PHPを学んで自分だけのスキルを身につけたい
- PHPのスキルを身につけてwebクリエイターとして活躍したい
- サポートが充実しているプログラミングスクールを知りたい
そんな思いを持った方は忍者CODEのWeb制作コースがおすすめです!
忍者CODEは未経験からでもプロのエンジニアを目指せるオンラインプログラミングスク―ルです。
期間制限なく動画を視聴できるので、自分のペースで学習することができます!
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の問題集に無料で挑戦しよう!
PHPを勉強していると、調べれば分かることもありますが、実際に自分でアウトプットするのは難しいと感じたことはありませんか?
アウトプットするためのおすすめの方法は、「問題解くこと」です。
忍者CODEのPHP学習の無料問題集では、PHPに関する問題を約50問用意しており、LINE登録するだけで解答を無料で確認できます!
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のスキルを活かして「副業」を獲得するには?
忍者CODEが提供するWeb制作コースの副業・案件獲得保証プランでは、PHPだけでなくWordPressの知識も学べるため、高単価な副業案件を獲得できるスキルを身につけられます。
現役クリエイターが学習のサポートをしてくれるため、学習中に分からないことがあれば、24時間無制限のチャットサポートでいつでも質問が可能です。
また、カリキュラムを受講完了した1ヶ月以内に5万円分の案件を必ずお渡ししています。副業をしたい方はぜひ忍者CODEをチェックしましょう!
まとめ
この記事では、PHPのdate関数について初心者向けに解説しました。date関数を使用することで、現在の日付や時刻を取得したり、指定したフォーマットに基づいて日付や時刻を整形したりすることができます。
基本的なフォーマット文字列やタイムスタンプの取得方法、さらにはstrtotime関数を組み合わせて相対日時を出力する方法まで学びました。これらの知識を活用することで、日付と時刻を柔軟に操作し、便利なプログラムを作成できるでしょう。
ぜひ積極的にPHPのdate関数を活用して、自分のプロジェクトに役立ててみてください。
PHPを学んで「転職」を目指す方へ
忍者CODEが提供するWeb制作コースの転職支援プランでは、未経験からエンジニアへ転職するための充実したサポート体制を提供しています。Web制作コースではPHPだけでなく、Web制作に必要なスキルも学べるので、フロントエンドエンジニアとして必要なスキルを身につけることができます。また、現役クリエイターが学習のサポートをしてくれるため、学習中に分からないことがあれば、24時間無制限のチャットサポートでいつでも質問が可能です。
転職活動に関してはプロのキャリアアドバイザーのサポートを受けられ、ポートフォリオや履歴書の添削も行いますので、IT業界が未経験の方でも、安心して転職活動に臨むことができますよ!
挫折することなくエンジニアを目指すなら
独学?スクール?
これからPHPなどといったプログラミング言語の学習を始めようと考えている方、または最近学習を始めた方がいらっしゃるかと思います。
ただ、実際に学習を始めるとなると
どこをゴールにしていいかわからない…
挫折してしまわないかな…
このように不安な気持ちになる方もいますよね。
たしかに、何かわからないことが出てきたとき、エラーが解決できないとき、誰かに相談できる環境がないことが理由でプログラミング言語の学習を挫折する方が多くいます。
実際にプログラミング言語初学者が挫折をする1番の理由は「不明点が発生した際に気軽に相談できる環境がない」という実態があります。
それだけ学習する環境が大事だということです。
そんな背景があるからこそ、プログラミングの勉強をする際にスクールを選ぶ方が多いのが事実です。
プログラミングスクールに通う理由は他にもあり
・効率良く学習を進めたい
・モチベーションの維持にもつながりそう
・以前に独学で挫折した経験がある
・学習者同士でつながれるコミュニティへの招待