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

JavaScriptを有効にしてください

PHPの date() 関数で今日の日付を取得する

PHPで今日の日付を取得する最も簡単な方法は、date()関数を使うことです。
以下のコードを見てください。

php
1
2
3
<?php
// 今日の日付を「YYYY-MM-DD」の形式で取得して表示する
echo date("Y-m-d");
出力結果
1
2025-02-10

上記のコードは、たとえば2025年2月11日の場合「2025-02-11」と表示されます。
このように、date()関数に適切なフォーマット文字列(ここでは "Y-m-d")を渡すだけで、今日の日付をすぐに取得できます。

タイムゾーンの設定方法

正しい日付を取得するためには、タイムゾーンの設定も重要です。
サーバーのデフォルト設定が日本時間になっていない場合、以下のようにタイムゾーンを明示的に設定しましょう。

php
1
2
3
4
5
6
<?php
// タイムゾーンを日本(Asia/Tokyo)に設定する
date_default_timezone_set("Asia/Tokyo");

// 今日の日付を表示する
echo date("Y-m-d");

この設定により、常に正確な日本時間の今日の日付が取得できます。

はい、PHPではdate()関数以外にも今日の日付を取得する方法がいくつかあります。ここでは、代表的な方法を2つご紹介します。

date関数以外の取得方法

DateTimeクラスを使う方法

PHP5以降では、DateTimeクラスを利用するのが一般的です。オブジェクト指向のアプローチなので、後々の日時操作にも柔軟に対応できます。例えば、今日の日付を取得して「YYYY-MM-DD」形式で表示するには、以下のように記述します。

php
1
2
3
4
5
6
<?php
// DateTimeオブジェクトを生成(現在の日時がセットされる)
$today = new DateTime();

// 指定した形式で日付を出力
echo $today->format("Y-m-d");
出力結果
1
2025-02-10

また、DateTimeImmutableクラスを使用すると、オブジェクトが不変(immutable)となるため、安全に日時の操作を行えます。

getdate() 関数を使う方法

PHPのgetdate() 関数は、現在の日時情報を連想配列として取得します。取得した配列の各要素(年、月、日など)を組み合わせて、今日の日付を整形する方法もあります。

php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
// getdate()で現在の日時情報を配列として取得
$today = getdate();

// 配列のキーと値をforeachで表示する
foreach ($today as $key => $value) {
    echo $key . " : " . $value . "<br>";
}

echo "<br>";

// sprintfで「YYYY-MM-DD」形式に整形して出力
echo sprintf("%04d-%02d-%02d", $today["year"], $today["mon"], $today["mday"]);
出力結果
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
seconds : 51
minutes : 42
hours : 15
mday : 10
wday : 1
mon : 2
year : 2025
yday : 40
weekday : Monday
month : February
0 : 1739202171

2025-02-10
キー 説明
seconds 秒(0~59):現在の秒数
minutes 分(0~59):現在の分数
hours 時(0~23):現在の時(24時間制)
mday 日(1~31):現在の月の日付
wday 曜日(0~6):0は日曜日、6は土曜日
mon 月(1~12):現在の月
year 年:現在の西暦年
yday 年内通算日(0~365):その年の何日目か
weekday 曜日(英語):曜日の名前
month 月(英語):月の名前
0 タイムスタンプ:Unixエポックからの経過秒数

getdate()は各要素にアクセスできる点で便利ですが、フォーマットの調整を自分で行う必要があるため、DateTimeクラスを使う方法より少し手間がかかります。

まとめ

  • PHPのdate()関数で今日の日付をシンプルに取得できる。
  • "Y-m-d"フォーマットで「年-月-日」を簡単に表示可能。
  • タイムゾーンの設定(date_default_timezone_set())を忘れずに行うことが大切。
  • DateTimeクラスはオブジェクト指向で柔軟な日時操作が可能。
  • getdate()関数は連想配列として日時要素を取得し、独自にフォーマットできる。

サンプルコードはPHP Playground で実行できます。

date関数の詳しい解説については下記記事をお読みください。
初心者向け PHP date関数の使い方ガイド


スポンサーリンク

共有

もふもふ
著者
もふもふ
プログラマ。汎用系→ゲームエンジニア→Webエンジニア→QAエンジニア