カテゴリ: PHP 更新日: 2025/10/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タイムスタンプを取得できます。
コメント
コメント投稿は、ログインしてください

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

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-