PHP Date() & Time 関数: 現在のタイムスタンプを取得する方法?

⚡ スマートサマリー

PHPのdate()関数は、タイムスタンプを人間が読みやすい日付と時刻にフォーマットします。このチュートリアルでは、日付の構文、Unixタイムスタンプ、タイムゾーンの一覧表示と設定方法、タイムスタンプを作成するためのmktime関数、および時刻、日、月、年の書式文字の完全なリファレンスについて説明します。

  • 📅 date() 関数は何をするのか? date関数は、タイムスタンプを、年、月、日を表すY、m、dなどの文字を使用してフォーマットされた文字列に変換します。
  • 豪華<XNUMXxXNUMXF><XNUMXxXNUMXF><XNUMXxBXNUMX><XNUMXxBXNUMX>️ Unixタイムスタンプ: タイムスタンプは、1970年1月1日(グリニッジ標準時)からの秒数を表し、time() 関数は現在の値を返します。
  • 🌍 時間帯: date_default_timezone_set はアクティブなタイムゾーンを変更し、DateTimeZone::listIdentifiers はサポートされているすべてのタイムゾーンを一覧表示します。
  • 🔧 mktime: mktime関数は、指定された時、分、秒、月、日、年からタイムスタンプを作成します。
  • 🔤 書式文字: 1文字のアルファベットで出力形式を制御できます。例えば、Hは24時間表示、lは曜日、Fは月を表します。
  • 📐 参照テーブル: グループ分けされた表には、時刻、曜日、月、年の書式指定文字が一覧表示され、それぞれについて実行可能な例が示されています。
  • 🤖 AIアシスト: AIツールは、日付の書式設定や差分に関するコードを生成し、紛らわしいタイムゾーンのバグを解決するのに役立ちます。

PHPのdate()関数

PHPのdate()関数

PHPのdate関数は、日付データ型を扱う作業を簡素化する組み込み関数です。PHPのdate関数は、日付や時刻を人間が読みやすい形式に整形するために使用されます。記事の公開日を表示したり、データベース内のデータが最後に更新された日時を記録したりするのに使用できます。

PHP の日付の構文と例

PHPのdate()関数には、以下の基本的な構文があります。

<?php
date(format,[timestamp]);
?>

ここに、

  • 「date(…)」は、現在のタイムスタンプをフォーマットして返す関数です。 PHP サーバー上で
  • 「format」は、出力の一般的な形式を指定します。例えば、次のようになります。
    • PHPの日付形式YYYY-MM-DDの「Ymd」
    • 「Y」は現在の年を表示します
  • 「[timestamp]」は省略可能です。タイムスタンプが指定されていない場合、PHPはサーバーの現在の日時を使用します。

それでは、現在の年を表示する基本的な例を見てみましょう。

<?php

echo date("Y");

?>

出力:

2026

タイムスタンプとは何ですか?

PHPのタイムスタンプは、現在時刻と1の時点の値との間の秒数を表す数値です。st 1970年1月00:00:00 グリニッジ標準時(GMT)。

time 関数によって返される値は、デフォルトのタイムゾーンによって異なります。

デフォルトのタイムゾーンはphp.iniファイルで設定されています。また、date_default_timezone_set関数を使用してプログラムで設定することもできます。

以下のコードは現在のタイムスタンプを表示します。

<?php

echo time();

?>

phptutsフォルダにtimestamp.phpファイルを保存したと仮定して、 URL http://localhost/phptuts/timestamp.php

タイムスタンプ

注:タイムスタンプの値は定数ではありません。毎秒変化します。

利用可能なタイムゾーン識別子のリストの取得

プログラムでデフォルトのタイムゾーンを設定する方法を見る前に、サポートされているタイムゾーンのリストを取得する方法を見ていきましょう。

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

foreach($timezone_identifiers as $key => $list){

echo $list . "<br/>";

}
?>

ここに、

  • 「$timezone_identifiers = DateTimeZone::listIdentifiers();」は、DateTimeZone組み込みクラスのlistIdentifiers静的メソッドを呼び出します。listIdentifiersメソッドは、変数$timezone_identifiersに代入される識別子のリストを返します。
  • 「foreach{…}」は配列を反復処理し、値を出力します。

list_time_zones.php ファイルを phptuts フォルダに保存したと仮定して、 URL http://localhost/phptuts/list_time_zones.php

タイムゾーン識別子

PHP はプログラムでタイムゾーンを設定します

date_default_timezone_set 関数を使用すると、PHP スクリプトからデフォルトのタイムゾーンを設定できます。

設定されたタイムゾーンは、すべての日付に使用されます PHP関数 スクリプト内で使用します。構文は以下のとおりです。

<?php
date_default_timezone_set(string $timezone_identifier);
?>

ここに、

  • 「date_default_timezone_set()」はデフォルトのタイムゾーンを設定する関数です
  • 「string $timezone_identifier」はタイムゾーン識別子です

以下のスクリプトは、php.iniで設定されているデフォルトのタイムゾーンに従って時刻を表示します。その後、デフォルトのタイムゾーンをAsia/Calcuttaに変更し、再度時刻を表示します。

<?php
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");

date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
?>

set_time_zone.php ファイルを phptuts フォルダに保存したと仮定して、 URL http://localhost/phptuts/set_time_zone.php

PHP はプログラムでタイムゾーンを設定します

PHP Mktime関数

mktime 関数はタイムスタンプを返します。 Unixの 形式でダウンロードすることができます。

構文は次のようになります。

<?php
mktime(hour, minute, second, month, day, year, is_dst);
?>

ここに、

  • 「mktime(…)」はPHPのタイムスタンプ作成関数です。
  • 「hour」は省略可能で、時間の数字を表します。
  • 「分」は省略可能です。分数を表します。
  • 「秒」は省略可能です。秒数を表します。
  • 「月」は省略可能で、月の番号を表します。
  • 「day」は省略可能で、日付の番号を表します。
  • 「year」は省略可能で、年を表す数字です。
  • 「is_dst」はオプションです。夏時間(DST)を判定するために使用されます。1は夏時間、0は夏時間以外、-1は不明です。

それでは、mktime関数を使用して2025年10月13日のタイムスタンプを作成する例を見てみましょう。

<?php

echo mktime(0,0,0,10,13,2025);

?>

ここに、

  • 「0,0,0」はそれぞれ時、分、秒を表します。
  • 「10」はその年の月です
  • 「13」は月の日です
  • 「2025年」はその年です

出力:

1760328000

PHP日付フォーマットリファレンス

以下の表は、PHPの日付関数を使用する際によく使われる書式文字を示しています。

時間パラメータ

詳細説明 例:
「R」 完全な日付と時刻を返します
<?php
echo date("r");
?>
「a」、「A」 現在の時刻が午前か午後、午前か午後かをそれぞれ返します。
<?php
echo date("a");
echo date("A");
?>
「g」、「G」 先頭のゼロを除いた時間を返します [1 ~ 12]、[0 ~ 23]
<?php
echo date("g");
echo date("G");
?>
「h」、「H」 それぞれ先頭にゼロを付けて時間を返します(01~12、00~23)。
<?php
echo date("h");
echo date("H");
?>
"は" 分/秒を先頭にゼロを付けて返します [00 ~ 59]
<?php
echo date("i");
echo date("s");
?>

曜日パラメータ

詳細説明 例:
「d」 先頭にゼロを付けて日付を返します [01 ~ 31]
<?php
echo date("d");
?>
「j」 先頭にゼロを付けずに日付を返します [1 ~ 31]
<?php
echo date("j");
?>
「D」 曜日名の最初の3文字を返します(日~土)。
<?php
echo date("D");
?>
「L」 曜日名を返します(日曜日から土曜日まで)。
<?php
echo date("l");
?>
"の" 先頭のゼロを除いた曜日を返します(0~6)。日曜日は0、土曜日は6で表されます。
<?php
echo date("w");
?>
「ズ」 先頭にスペースを入れずに年間通算日を返します [0 ~ 365]
<?php
echo date("z");
?>

月パラメータ

詳細説明 例:
"m" 先頭にゼロを付けた月番号を返します [01 ~ 12]
<?php
echo date("m");
?>
「n」 先頭のゼロを除いた月番号を返します [1 ~ 12]
<?php
echo date("n");
?>
"M" 月名の最初の 3 文字を返します [XNUMX 月から XNUMX 月]
<?php
echo date("M");
?>
「F」 月の名前を返します [XNUMX 月から XNUMX 月]
<?php
echo date("F");
?>
「t」 28 か月の日数を返します [31 ~ XNUMX]
<?php
echo date("t");
?>

年のパラメータ

詳細説明 例:
「L」 閏年の場合は1、閏年でない場合は0を返します。
<?php
echo date("L");
?>
「Y」 4桁の年形式を返します
<?php
echo date("Y");
?>
"そして" 2桁の年形式(00~99)を返します。
<?php
echo date("y");
?>

よくあるご質問

date() は、タイムスタンプをフォーマットするシンプルな手続き型関数です。DateTime クラスはオブジェクト指向であり、算術演算、比較演算、タイムゾーン、および不変性をサポートしているため、大規模アプリケーションにおける複雑な日付ロジックに適しています。

strtotime() を使用すると、「2025-10-13」や「next」のような形式を読み取ることができます。 Monday' は Unix タイムスタンプを返します。既知のフォーマットを厳密に解析する場合は、無効な入力に対して明確にエラーを返す DateTime::createFromFormat の方が安全です。

2つのDateTimeオブジェクトを作成し、diff()メソッドを呼び出すと、DateIntervalオブジェクトが返されます。その後、日数、月数、年数を読み取ることができます。例えば、$start->diff($end)->daysのように記述すると、2つの日付間の合計日数を取得できます。

はい。入力と出力のフォーマットを記述すれば、AIはdate()、DateTime、またはstrtotimeコードを生成できます。これには、間隔の追加やタイムゾーンの変換も含まれます。閏年や月末などの特殊なケースでテストしてください。

はい。AIは、date_default_timezone_set呼び出しの欠落、サーバーとディスプレイのタイムゾーンの不一致、または夏時間に関する問題を検出し、動作を予測可能にするために、明示的なタイムゾーンを指定したDateTimeを使用することを推奨します。