カテゴリ: PHP 更新日: 2026/01/10

PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方

PHP の日付と時間の取得(date, time, strtotime)
PHP の日付と時間の取得(date, time, strtotime)

新人と先輩の会話形式で理解しよう

新人

「PHPで現在の日付や時間を取得する方法を教えてください!」

先輩

「PHPでは、date()関数やtime()関数を使って簡単に日付と時間を取得できるよ。」

新人

「なるほど!具体的にどうやって使うんですか?」

先輩

「それじゃあ、基本から順番に解説していこう!」

1. PHP で日付と時間を扱う方法(基本的な説明)

1. PHP で日付と時間を扱う方法(基本的な説明)
1. PHP で日付と時間を扱う方法(基本的な説明)

PHP では、サーバーの現在時刻を取得し、任意のフォーマットで表示することができます。主に次の関数を使います。

  • date() - 指定したフォーマットで日付と時間を取得
  • time() - 現在の UNIX タイムスタンプを取得
  • strtotime() - 文字列形式の日付を UNIX タイムスタンプに変換

2. time 関数と date 関数の使い方

2. time 関数と date 関数の使い方
2. time 関数と date 関数の使い方

まずは、time()関数を使って現在の UNIX タイムスタンプを取得してみましょう。


<?php
echo time();
?>

出力結果(2025年3月2日の例):


1709385600

次に、date()関数を使って、現在の日付と時間を取得する方法を見てみましょう。


<?php
echo date("Y-m-d H:i:s");
?>

出力結果(2025年3月2日の例):


2025-03-02 14:30:15

このように、date()関数を使うと、指定したフォーマットで日付と時間を簡単に表示できます。

3. strtotime 関数を使った日付の変換

3. strtotime 関数を使った日付の変換
3. strtotime 関数を使った日付の変換

PHP では、文字列で表現された日付を UNIX タイムスタンプに変換するために strtotime() 関数を使用します。この関数を使うことで、日付の計算や比較を簡単に行うことができます。

例えば、「2025年3月2日」を UNIX タイムスタンプに変換するには、次のように記述します。


<?php
echo strtotime("2025-03-02");
?>

出力結果(例):


1709385600

また、「+1 day」や「next Monday」のような自然な表現も使用できます。


<?php
echo date("Y-m-d", strtotime("+1 week"));
?>

出力結果(2025年3月2日の場合):


2025-03-09

このように、strtotime() 関数を使えば、簡単に日付を計算することができます。

4. PHP でタイムゾーンを設定する方法

4. PHP でタイムゾーンを設定する方法
4. PHP でタイムゾーンを設定する方法

PHP で日付や時間を扱う際、デフォルトのタイムゾーンが意図しないものになっていると、正しい時間が取得できないことがあります。そのため、適切なタイムゾーンを設定することが重要です。

現在のタイムゾーンを確認するには、次のように記述します。


<?php
echo date_default_timezone_get();
?>

出力結果(例):


UTC

もし、タイムゾーンが「UTC」のままだと、日本時間 (Asia/Tokyo) では正しい時間が表示されません。タイムゾーンを「Asia/Tokyo」に変更するには、以下のコードを実行します。


<?php
date_default_timezone_set("Asia/Tokyo");
echo date("Y-m-d H:i:s");
?>

出力結果(例):


2025-03-02 23:30:15

この設定を php.ini に追加すると、すべてのスクリプトで適用されます。


date.timezone = "Asia/Tokyo"

タイムゾーンの設定を適切に行うことで、正しい時間を取得しやすくなります。

5. フォーマットを変更して日付を表示する方法

5. フォーマットを変更して日付を表示する方法
5. フォーマットを変更して日付を表示する方法

PHP の date() 関数を使えば、日付や時間を自由なフォーマットで表示することができます。

例えば、年月日を「2025年3月2日」という形式で表示するには、次のように記述します。


<?php
echo date("Y年m月d日");
?>

出力結果(例):


2025年03月02日

また、曜日を含めた形式で表示することも可能です。


<?php
echo date("Y年m月d日 l");
?>

出力結果(例):


2025年03月02日 Sunday

日本語で曜日を表示する場合は、setlocale() 関数を使ってロケールを設定し、strftime() を使う方法もあります。


<?php
setlocale(LC_TIME, "ja_JP.UTF-8");
echo strftime("%Y年%m月%d日 %A");
?>

出力結果(例):


2025年03月02日 日曜日

このように、フォーマットを柔軟に指定することで、用途に応じた日付の表示が可能になります。

6. 未来や過去の日付を取得する方法(+1 day, -1 month など)

6. 未来や過去の日付を取得する方法(+1 day, -1 month など)
6. 未来や過去の日付を取得する方法(+1 day, -1 month など)

PHP では、strtotime() 関数を使って未来や過去の日付を簡単に取得することができます。

例えば、「今日から1日後」の日付を取得するには、次のように記述します。


<?php
echo date("Y-m-d", strtotime("+1 day"));
?>

出力結果(2025年3月2日の場合):


2025-03-03

同様に、「1か月前」の日付を取得することも可能です。


<?php
echo date("Y-m-d", strtotime("-1 month"));
?>

出力結果(2025年3月2日の場合):


2025-02-02

さらに、「次の月曜日」や「来週の日曜日」など、自然な表現を使って日付を計算できます。


<?php
echo date("Y-m-d", strtotime("next Monday"));
?>

出力結果(2025年3月2日の場合):


2025-03-03

このように、strtotime() 関数を使うと、さまざまな日付の計算が簡単にできます。

7. PHP で日付の計算をする方法(差分を求める)

7. PHP で日付の計算をする方法(差分を求める)
7. PHP で日付の計算をする方法(差分を求める)

PHP では、2つの日付の差分を計算することができます。例えば、特定の日付から現在までの日数を求める場合は、strtotime() を使って差を計算できます。

次の例では、2つの日付の差分(日数)を求めます。


<?php
$date1 = strtotime("2025-03-02");
$date2 = strtotime("2025-02-20");

$diff = ($date1 - $date2) / (60 * 60 * 24);
echo $diff . "日";
?>

出力結果:


10日

また、DateTime クラスを使うと、より簡単に日付の差分を求めることができます。


<?php
$date1 = new DateTime("2025-03-02");
$date2 = new DateTime("2025-02-20");
$diff = $date1->diff($date2);
echo $diff->days . "日";
?>

出力結果:


10日

この方法では、より直感的に日付の差を求めることができるのでおすすめです。

8. PHP の日付操作を学ぶためのおすすめの方法

8. PHP の日付操作を学ぶためのおすすめの方法
8. PHP の日付操作を学ぶためのおすすめの方法

PHP の日付操作をマスターするには、以下の方法を試してみると良いでしょう。

① 実際にコードを書いて試す

PHP の date()strtotime()DateTime クラスなどを使って、自由に日付を操作するコードを書いてみましょう。例えば、1年後の日付を求めるコードを実行してみるのも良い練習になります。


<?php
echo date("Y-m-d", strtotime("+1 year"));
?>

② 公式ドキュメントを読む

PHP の公式ドキュメントには、日付に関する詳細な情報が載っています。最新の仕様や便利な機能を知るために、定期的にチェックするのがおすすめです。

公式サイト: PHP date() 関数のドキュメント

③ Web アプリに実装してみる

実際に Web アプリを作りながら日付操作を学ぶのも効果的です。例えば、カレンダー機能やスケジュール管理アプリを作ってみると、実践的に学ぶことができます。

④ 日付に関するクイズや問題を解く

日付に関する問題を解くことで、知識を定着させることができます。例えば、「指定された日付の1週間後を求めるコードを書いてみよう」といった課題に挑戦すると良いでしょう。

まとめ

まとめ
まとめ

PHPで日付と時間を扱う方法について、初心者にもわかりやすく基本から応用まで解説しました。date()関数で日付や時間を自由なフォーマットで取得し、time()関数で現在のUNIXタイムスタンプを得ることができました。また、strtotime()関数を使えば、「+1 day」や「next Monday」などの自然な表現で未来や過去の日付を計算でき、DateTimeクラスを使うことで日付の差分を簡単に求める方法も学びました。

タイムゾーンの設定や日本語表記の曜日表示も含めて、実務に活かせるさまざまな活用方法を紹介しました。これにより、PHPでのスケジュール管理やカレンダー機能、ログの記録や通知システムの構築など、あらゆるWebアプリケーションに応用できます。

最後に、実際のコードで確認することが何より重要です。以下は復習用のサンプルコードとして、現在の日付を日本語表記で表示する方法です。


<?php
date_default_timezone_set("Asia/Tokyo");
setlocale(LC_TIME, "ja_JP.UTF-8");
echo strftime("%Y年%m月%d日 %A");
?>

上記のように書くことで、「2025年03月02日 日曜日」といった日本語の表記が可能になります。PHPで日付と時間を自在に扱えるようになることで、システム開発の幅が大きく広がります。毎日の実装の中で繰り返し試して、自然に使えるようになりましょう。

先生と生徒の振り返り会話

新人

「PHPって、こんなに簡単に日付を操作できるんですね!」

先輩

「そうなんだ。特にdate()strtotime()を覚えるだけで、かなりのことができるよ。」

新人

strtotime()で『next Monday』とか『-1 month』って書けるの、すごく便利ですね!」

先輩

「実際の開発でもよく使うから、慣れておくとすごく役立つよ。日付の差分をDateTimeクラスで計算する方法も覚えておくと安心だね。」

新人

「タイムゾーンの設定も重要なんですね。Asia/Tokyoにしておかないと時間がズレるかもって気づきませんでした。」

先輩

「その通り。環境によって結果が変わるから、タイムゾーンやロケールの設定は開発初期にしっかり確認しておこうね。」

新人

「これでWebアプリにカレンダー機能も自分で作れそうな気がします!」

先輩

「うん、自信を持ってどんどんコードを書いてみて。日付と時間の扱いに強くなると、実務でも活躍できるよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPで現在の日時を取得するにはどの関数を使えばいいですか?

PHPで現在の日時を取得したい場合は、date関数とtime関数を使うのが基本です。date関数でフォーマット付きの日付を、time関数でUNIXタイムスタンプを取得できます。

UNIXタイムスタンプって何ですか?PHPでの使い道を教えてください。

UNIXタイムスタンプとは、1970年1月1日からの経過秒数を示す数値で、PHPではtime関数やstrtotime関数などで日時の計算や比較に使います。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
Python
Pythonのカスタム例外を作成する方法を完全解説!初心者でもわかる独自のExceptionクラス入門
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPの真偽値と条件判定をやさしく解説!初心者でもわかるempty・isset・is_nullの使い方
New4
PHP
PHP の file_get_contents() を使ってファイルを読み込む方法!初心者でもできる簡単なファイル操作
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonのクラスメソッドと静的メソッドの違いとは?初心者でも迷わない使い分けガイド
No.4
Java&Spring記事人気No4
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.5
Java&Spring記事人気No5
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.6
Java&Spring記事人気No6
PHP
PHPの可変長引数(...$args)の使い方を完全ガイド!初心者でもわかる基本と活用方法
No.7
Java&Spring記事人気No7
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.8
Java&Spring記事人気No8
PHP
初心者向けPHP の MySQL のデータを更新する方法(UPDATE 文)完全ガイド