WithCodeMedia-1-pc
WithCodeMedia-2-pc
WithCodeMedia-3-pc
WithCodeMedia-4-pc
previous arrowprevious arrow
next arrownext arrow

WithCodeMedia-1-sp
WithCodeMedia-2-sp
WithCodeMedia-3-sp
WithCodeMedia-4-sp
previous arrowprevious arrow
next arrownext arrow

PHPの日付取得方法をマスター!コード例で学ぶ日付の取得と活用方法と実践例まで詳しく解説

生徒

ペン博士!PHPで日付を取得したいんですけど、どうやって書けばいいのか全然わからなくて…

ペン博士

よい質問じゃ!日付の取得はPHPの基本じゃが、奥が深くて非常に便利な機能でもある。しっかり学んでいこうぞ!

生徒

はい!お願いします!

PHPを使って日付や時間を操作したいけれど、どこから始めればいいかわからないと感じていませんか?

本記事では、PHPの基本関数であるdate関数から、柔軟な日付操作が可能なDateTimeクラスの使い方まで、具体的なコード例を通じてわかりやすく解説します。

日付の取得やタイムゾーンの設定、さらに実践的なスケジュール管理まで、PHPでの日付操作をマスターしましょう!

PHPの公式情報は以下からご確認ください。

PHPマニュアル

「学習→案件獲得」につなげた受講生のリアルな体験談も公開中!
働き方を変えたい方にも響くストーリーです。

菅井さん
将来的への不安と子育てという背景から「副業」に挑戦しようと決意。独学からプログラミングの学習を開始していたが、WithCodeに出会い体験コースを受講。約4ヶ月の学習に取り組み、当初の目標であった卒業テスト合格を実現した。WithCode Platinumにて3件の案件を担当し、現在は副業だけでなく本格的に「フリーランス」として在宅で活躍していきたいと考えるようになりました。

詳しくはこちらの記事をご覧ください。

菅井さんの主な制作実績はこちら

目次

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

ペン博士

まずは、今日の日付を取得する方法を解説するぞ!

date関数を使う

この関数は、指定されたフォーマットに従って現在の日付や時刻を出力できる便利なツールです。例えば、今日の日付を「YYYY-MM-DD」という形式で表示したい場合、次のコードを使用します。

echo date("Y-m-d");

このコードを実行すると、現在の年・月・日が「2024-10-16」のような形で表示されます。date関数では、”Y”で年、”m”で月、”d”で日を表現でき、さまざまな形式で日付を表示できるので覚えておきましょう。

さらに、date関数は時間も取得でき、例えば「Y-m-d H:i」と指定することで、年、月、日、時、分、秒を一括で取得できます。このように、date関数は、シンプルかつ柔軟に現在の日付を取得できるので非常に有効な方法と言えるでしょう。

DateTimeクラスを活用した日付操作の方法

ペン博士

次は、DateTimeクラスを活用した日付操作の方法を解説するぞ!

DateTimeクラスを使用して今日の日付を表示する

PHPで今日の日付を取得するもう一つの便利な方法がDateTimeクラスの活用です。このクラスは、日付や時間をより詳細に扱えるため、柔軟な日付操作が可能です。現在の日付を表示するには、次のようにDateTimeオブジェクトを生成し、そのフォーマットを指定して出力します。

$date = new DateTime();
echo $date->format('Y-m-d');

このコードでは、まずDateTimeを使用し、その後formatメソッドを使って日付を「YYYY-MM-DD」の形式で出力します。DateTimeクラスは、タイムゾーン指定や日時の計算といった複雑な操作も可能で、より高度な日付操作を行いたい場面で有効です。

また、DateTimeクラスは他のメソッドも充実しており、必要に応じて自由なフォーマットや時間情報を取得できます。これにより、PHPでの日付操作が簡単かつ効率的に行えるようになります。

タイムゾーンを指定して日時を表示する

DateTimeクラスでは、任意のタイムゾーンを設定して日時を表示できます。以下のコードでは、タイムゾーンを「Asia/Tokyo」に設定し、現在の日時を表示する方法を示します。

$date = new DateTime("now", new DateTimeZone("Asia/Tokyo"));
echo $date->format('Y-m-d H:i:s');

このコードでは、DateTimeZoneクラスを使って「Asia/Tokyo」というタイムゾーンを指定し、その設定を持つDateTimeオブジェクトを生成しています。formatメソッドで日時を出力すると、指定したタイムゾーンに基づいた日時が表示されるので覚えておきましょう。

さらに、DateTimeZoneには他にも多くのタイムゾーンオプションがあり、ユーザーの地域に合わせた日時の表示が可能です。この機能により、異なるタイムゾーン間の日時管理が簡単にできます。

過去・未来の日付を取得する方法

ペン博士

ここでは、過去・未来の日付を取得する方法を解説するぞ!

過去の日付を取得する

PHPで過去の日付を取得するには、DateTimeクラスのmodifyメソッドを使用して簡単に指定できます。例えば、現在の日付から1週間前の日付を取得したい場合、次のようなコードになります。

$date = new DateTime();
$date->modify('-7 day');
echo $date->format('Y-m-d');

このコードでは、modify(‘-7 day’)を指定することで、1週間前の日付を生成しています。この方法は、”-1 month”や”-1 year”のように日付を柔軟に調整できるため、必要な過去の日付を簡単に計算するのに便利です。

過去の日付を取得する際の注意点

過去の日付を取得する際には、いくつかの注意点があります。特に重要なのは、日付計算が正確になるよう、タイムゾーン設定を確認することです。異なるタイムゾーンで日時計算を行うと、取得結果がずれる可能性があるため、必要に応じてDateTimeZoneクラスでタイムゾーンを設定することが推奨されます。

過去の日付取得に伴う潜在的なエラーを防ぐためにも、PHPの日付関数やDateTimeクラスの使い方に慣れておくようにしましょう。

ペン博士

modifyメソッドを使って日付を調整する際には、「-1 day」「-1 month」のように表現するが、特定の月の末日やうるう年をなどの場合、日付が意図通りに調整されない場合もあるぞ。

例えば、3月31日から1か月前を指定すると、2月の末日(2月28日または29日)になるため、月数の計算を行う際にはこうした例外を考慮することが必要じゃ!

未来の日付を指定してスケジュールを管理する

未来の日付を取得することで、イベントやプロジェクトのスケジュール管理が簡単です。PHPのDateTimeクラスとmodifyメソッドを使えば、特定の日数や月数を加算して、未来の日付を簡単に設定できます。たとえば、今日から1か月後のスケジュールを表示したい場合は、次のコードを使います。

$date = new DateTime();
$date->modify('+1 month');
echo $date->format('Y-m-d');

このコードでは、modify(‘+1 month’)を指定することで、1か月後の日付を取得しています。日数で指定したい場合は「+7 days」や「+30 days」と書くことで柔軟に変更可能です。

未来の日付の取得は、タスクのリマインダーや予約システムなど、スケジュール管理に非常に有効です。DateTimeクラスの機能を活用することで、複雑な日付計算も簡潔に行うことができ、PHPによる効率的なスケジュール管理が実現します。

PHPでの日付操作と応用テクニック

ペン博士

ここでは、PHPでの日付操作と応用テクニックを解説するぞ!

日付を使った条件分岐の例(営業日計算など)

日付を使った条件分岐は、スケジュール管理や営業日計算などで非常に役立ちます。PHPでは、DateTimeクラスやdate関数を使って、特定の日付が平日か休日かを判別し、条件分岐を行うことが可能です。以下のコードは、今日の日付が平日かどうかを判定する例です。

$date = new DateTime();
$dayOfWeek = $date->format('N'); // 'N'は1(月曜日)から7(日曜日)の数値を返す
if ($dayOfWeek >= 1 && $dayOfWeek <= 5) {
    echo "今日は営業日です。";
} else {
    echo "今日は休日です。";
}

このコードでは、format(‘N’)を使って曜日を数値で取得し、1から5の間であれば営業日、それ以外なら休日と判定しています。さらに、特定の休日を配列に登録しておき、それと一致する日付は営業日としないようにすることで、実務的なカレンダー管理が可能です。

ペン博士

仮に、3営業日以内に特定の処理を行いたいといったシナリオでは、modify(‘+1 day’)をループで繰り返しながら土日や休日をスキップするロジックも組むことができ、正確な営業日計算が可能じゃ。そのため、納期や期限管理などで非常に役立つぞ!

例えば、以下のようなコードになります。

$date = new DateTime();
$businessDays = 3; // 必要な営業日数
$counter = 0;
// 祝日リストを指定(例として元日と建国記念日)
$holidays = [
    '2024-01-01', // 元日
    '2024-02-11', // 建国記念日
];
while ($counter < $businessDays) {
    $date->modify('+1 day');
    $dayOfWeek = $date->format('N'); // 'N'は1(月曜日)から7(日曜日)の数値を返す
    // 土日および祝日リストに含まれる日付をスキップ
    if ($dayOfWeek < 6 && !in_array($date->format('Y-m-d'), $holidays)) {
        $counter++;
    }
}
// 結果を表示
echo "3営業日後の日付は " . $date->format('Y-m-d') . " です。";
  1. まず、$dateオブジェクトを現在の日付から開始します。
  2. $businessDaysには必要な営業日数(今回は3営業日)を指定します。
  3. 祝日をリスト(配列)として設定し、該当の日付をスキップするようにします。
  4. whileループで日付を1日ずつ進め、土日(週末)や祝日リストに含まれる日付をスキップしながらカウンターを進めていきます。
  5. echoで3営業日後の日付を表示します。

これで、3営業日後の日付を土日や特定の祝日を除外した形で取得できます。

PHPの日付関数を活用することで、営業日の計算や動的なスケジュール管理が柔軟に行え、実用的なプログラムを簡単に組み立てることが可能です。

生徒

ペン博士、今日だけでPHPの日付取得の基本がばっちり分かりました!date()DateTimeクラスなど、思ってたより使い道が多いですね!

ペン博士

うむ、それが分かればもう立派な第一歩じゃ。日付はあらゆるWebアプリに欠かせぬ要素。ログの記録や予約システム、ブログの投稿日時など、活躍の場は無限じゃぞ

生徒

はいっ!早速活用してみます!ありがとうございました!

まとめ

PHPでの日付取得と操作の方法について、初心者向けに基本的な関数とDateTimeクラスの使い方を解説してきました。PHPにはdate関数とDateTimeクラスというツールが用意されています。

それぞれの方法を理解しておくことで以下のことが可能です。

現在の日付・時刻の取得
過去・未来の日付の計算(+1日、-3ヶ月 など)
タイムゾーンの変更
日付フォーマットのカスタマイズ(例:Y-m-d H:i:s

また、使える主な場面は以下の通りです。

スケジュール管理や予約システムなど
データの記録やログ管理
日付を扱うロジックを自動化できる(週次・月次処理など)

各コード例を参考にしながら、ご自身で試してみることで、日付操作の理解がさらに深まるでしょう。PHPの日付関数をマスターすることで、より効果的で柔軟なプログラムを構築できるようになるでしょう。

WithCodeを体験できる初級コース公開中!

初級コース(¥49,800)が完全無料に!

  • 期間:1週間
  • 学習内容:
    ロードマップ/基礎知識/環境構築/HTML/CSS/LP・ポートフォリオ作成
    正しい学習方法で「確かな成長」を実感できるカリキュラム。

副業・フリーランスが主流になっている今こそ、自らのスキルで稼げる人材を目指してみませんか?

未経験でも心配することありません。初級コースを受講される方の大多数はプログラミング未経験です。まずは無料カウンセリングで、悩みや不安をお聞かせください!

この記事を書いた人

WithCode(ウィズコード)は「目指すなら稼げる人材」をビジョンに、累計400名以上のフリーランスを輩出してきた超実践型プログラミングスクールです。150社以上の実案件支援を特徴にWeb制作・Webデザインなどの役立つ情報を現場のノウハウに基づいて発信していきます。

– service –WithCodeの運営サービス

  • WithCode
    - ウィズコード -

    スクール

    「未経験」から
    現場で通用する
    スキルを身に付けよう!

    詳細はこちら
  • WithFree
    - ウィズフリ -

    実案件サポート

    制作会社のサポート下で
    実務経験を積んでいこう!

    詳細はこちら
  • WithCareer
    - ウィズキャリ -

    就転職サポート

    大手エージェントのサポート下で
    キャリアアップを目指そう!

    詳細はこちら

公式サイト より
今すぐ
無料カウンセリング
予約!

目次