PHP 5 日付と時刻

❮ 前章へ 次章へ ❯

PHPのdate()関数は、日付および/または時刻の書式設定に使用します。


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");
?>
例の実行 »

PHP チップ - 著作権表示の年の自動化

date()関数を使用して、webサイトの著作権年を自動的に更新するようにします:

&copy; 2010-<?php echo date("Y");?>
例の実行 »

シンプルな時刻の取得

ここに、時刻によく使用するいくつかの文字があります:

次の例は、指定の形式で現在時刻を出力します:

<?php
echo "The time is " . date("h:i:sa");
?>
例の実行 »

PHPの date() 関数は、サーバの現在の日付/時刻を返すことに注意してください!


タイムゾーンの取得

コードから戻された時間が正しくない場合は、サーバが別の国にあるか、異なるタイムゾーンに設定されている可能性があります。

指定の場所に応じた時刻が必要な場合は、使用するタイムゾーンを設定することができます。

次の例は、タイムゾーンを "America/New_York"に設定し、現在の時刻を指定の形式で出力します:

<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>
例の実行 »

PHPで日付を作成する mktime()

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()

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の日付リファレンス

すべての日付関数の完全なリファレンスについては、完全なPHP 日付リファレンスをご覧ください。

リファレンスには、各機能の簡単な説明と使用例が含まれています!


❮ 前章へ 次章へ ❯