PHP 日期と時間

PHP date() 関数は、日付や時間をフォーマットするために使用されます。

PHP Date() 関数

PHP Date() 関数は、時間スタンプをより読みやすくフォーマットします。

構文

date(format,timestamp)
パラメータ 説明
format 必須。タイムスタンプのフォーマットを指定します。
timestamp オプション。タイムスタンプを指定します。デフォルトは現在の日付と時間です。

注釈:タイムスタンプは、特定のイベントが発生した日付と時間を表す文字列です。

単純な日付を取得する

date() 関数のフォーマット引数は必須で、日付や時間のフォーマット方法を定義します。

以下に、日付に常用される文字の一部を挙げます:

  • d - 月の特定の日(01-31)を表します
  • m - 月(01-12)を表します
  • Y - 年(4桁)を表します
  • 1 - 週の特定の日を表します

他の文字、例えば "/", "." または "-" も文字に挿入することができ、他のフォーマットを追加できます。

以下の例では、今日の日付を3種類の異なる方法でフォーマットします:

<?php
echo "今日は" . date("Y/m/d") . "<br>";
echo "今日は" . date("Y.m.d") . "<br>";
echo "今日は" . date("Y-m-d") . "<br>";
echo "今日は" . date("l");
?>

実行例

PHPヒント - 自動的な著作権年

date()関数を使用して、あなたのウェブサイトでバージョン年を自動的に更新してください:

© 2010-<?php echo date("Y")?>

実行例

簡単な時間の取得

時間に常用される文字は以下の通りです:

  • h - 頭のゼロを含む12時間形式の時間
  • i - 頭のゼロを含む分
  • s - 頭のゼロを含む秒(00 - 59)
  • a - 午前と午後の小文字(am または pm)

以下の例では、指定された形式で現在の時間を出力します:

<?php
echo "現在の時間は " . date("h:i:sa");
?>

実行例

注釈:注意:PHPのdate()関数は、サーバーの現在の日付/時間を返します!

時区の取得

コードから正しい時間が返されない場合、サーバーが他の国に位置しているか、異なる時区が設定されている可能性があります。

したがって、特定の場所の正確な時間が必要な場合、使用する時区を設定できます。

以下の例では、時区を"Asia/Shanghai"に設定し、指定された形式で現在の時間を出力します:

<?php
date_default_timezone_set("Asia/Shanghai");
echo "現在の時間は " . date("h:i:sa");
?>

実行例

PHPのmktime()を使用して日付を作成

date()関数のオプションの時間スタンプ引数は、時間スタンプを指定します。時間スタンプを指定しない場合、現在の日付と時間が使用されます(上の例のように)。

mktime()関数は、指定された時間のUnix時間スタンプを返します。Unix時間スタンプは、Unixエポック(1970年1月1日 00:00:00 GMT)から指定された時間までの秒数を含みます。

構文

mktime(hour,minute,second,month,day,year)

以下の例では、mktime()関数の一系列の引数を使用して日付と時間を作成します:

<?php
$d=mktime(9, 12, 31, 6, 10, 2015);
echo "日付は " . date("Y-m-d h:i:sa", $d);
?>

実行例

PHPのstrtotime()を使用して文字列で日付を作成

PHPのstrtotime()関数は、人間が読みやすい文字列をUnix時間に変換するために使用されます。

構文

strtotime(time,now)

以下の例では、strtotime()関数を使用して日付と時間を作成します:

<?php
$d=strtotime("10:38pm April 15 2015");
echo "日付は " . date("Y-m-d h:i:sa", $d);
?>

実行例

PHP は文字列を日付に変換する際に非常に賢明で、さまざまな値を使用できます:

<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

実行例

ただし、strtotime() は完璧ではありませんので、その中に含める文字列を確認してください。

更多日期例

以下は、次の土曜日の日付を出力する例です:

<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks",$startdate);
while ($startdate < $enddate) {
  echo date("M d", $startdate),"<br>";
  $startdate = strtotime("+1 week", $startdate);
}
?>

実行例

以下は、七月四日までの日数を出力する例です:

<?php
$d1=strtotime("December 31");
$d2=ceil(($d1-time())/60/60/24);
echo "十二月三十一日までの残り日数:" . $d2 ." 日。";
?>

実行例

完全な PHP 日期リファレンスマニュアル

すべての日期関数の完全なマニュアルが必要な場合は、私たちの PHP 日期リファレンスマニュアル

このマニュアルには、各関数の簡単な説明と使用例が含まれています。