PHPのdate()関数は、日付および/または時刻の書式設定に使用します。
PHPのdate()関数はタイムスタンプをより読みやすい日付と時刻にフォーマットします。
date(format,timestamp)
パラメータ | 説明 |
---|---|
format | 必須。タイムスタンプの形式を指定します |
timestamp | 任意。タイムスタンプを指定します。デフォルトは現在の日付と時刻です |
タイムスタンプは一連の文字で、特定のイベントが発生した日付および/または時刻を示します。
date()関数の必須なformatパラメータは、日付(または時刻)のフォーマット方法を指定します。
ここに、日付によく使用するいくつかの文字があります:
"/"、"."、"-" などの他の文字を文字の間に挿入して、書式を追加することもできます。
以下の例では、今日の日付を3つの異なる方法でフォーマットします:
<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>
例の実行 »
date()関数を使用して、webサイトの著作権年を自動的に更新するようにします:
ここに、時刻によく使用するいくつかの文字があります:
次の例は、指定の形式で現在時刻を出力します:
PHPの date() 関数は、サーバの現在の日付/時刻を返すことに注意してください!
コードから戻された時間が正しくない場合は、サーバが別の国にあるか、異なるタイムゾーンに設定されている可能性があります。
指定の場所に応じた時刻が必要な場合は、使用するタイムゾーンを設定することができます。
次の例は、タイムゾーンを "America/New_York"に設定し、現在の時刻を指定の形式で出力します:
date()関数オプションの timestamp パラメータは、タイムスタンプを指定します。タイムスタンプを指定しないと、 現在の日付と時刻が使用されます(上記の例に示すように)。
mktime() 関数は、日付のUnixタイムスタンプを返します。Unixタイムスタンプには、Unix Epoch(1970年1月1日00:00:00 GMT)から 指定の時刻までの秒数が入ります。
mktime(hour,minute,second,month,day,year)
次の例は、mktime()関数のパラメータの数値から日付と時刻を作成します:
<?php
$d=mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
例の実行 »
PHPのstrtotime()関数は、人間が読める文字列をUnixの時刻に変換するために使用します。
strtotime(time,now)
次の例では、strtotime()関数で日付と時刻を作成します:
<?php
$d=strtotime("10:30pm April 15 2014");
echo "Created date is " . 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()は完璧ではないので、そこに指定した文字列のチェックを忘れないでください。
下の例は、次の6週間の土曜日の日付を出力します:
<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks", $startdate);
while ($startdate < $enddate) {
echo date("M d", $startdate) . "<br>";
$startdate = strtotime("+1 week", $startdate);
}
?>
例の実行 »
下の例は、7月4日までの日数を出力します:
<?php
$d1=strtotime("July 04");
$d2=ceil(($d1-time())/60/60/24);
echo "There are " . $d2 ." days until 4th of July.";
?>
例の実行 »
すべての日付関数の完全なリファレンスについては、完全なPHP 日付リファレンスをご覧ください。
リファレンスには、各機能の簡単な説明と使用例が含まれています!