PHPの日付と時刻
PHPdate()
関数は、日付や時刻をフォーマットするために使用されます。
PHPのDate()関数
PHPdate()
関数は、タイムスタンプをより読みやすい日付と時刻にフォーマットします。
構文
date(format,timestamp)
Parameter | Description |
---|---|
format | Required. Specifies the format of the timestamp |
timestamp | Optional. Specifies a timestamp. Default is the current date and time |
タイムスタンプは文字のシーケンスであり、特定のイベントが発生した日付や時刻を示します。
日付を取得
date()関数の必須のformatパラメーターは、日付(または時刻)のフォーマット方法を指定します。
日付に一般的に使用される文字は次のとおりです。
- d-月の日を表します(01から31)
- m-月を表します(01から12)
- Y-年を表します(4桁)
- l(小文字の 'L')-曜日を表します
「/」、「。」、「-」などの他の文字を文字の間に挿入して、フォーマットを追加することもできます。
以下の例では、今日の日付を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サイトの著作権年を自動的に更新します。
例
© 2010-<?php echo date("Y");?>
時間を得る
時代によく使われる文字は次のとおりです。
- H-1時間の24時間形式(00から23)
- h-先行ゼロ(01から12)を含む1時間の12時間形式
- i-先行ゼロのある分(00から59)
- s-先行ゼロのある秒(00から59)
- a-小文字のアンティメリディエムとポストメリディエム(午前または午後)
次の例では、現在の時刻を指定された形式で出力します。
例
<?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");
?>
mktime()で日付を作成する
date()関数のオプションのtimestampパラメーターは、タイムスタンプを指定します。省略した場合は、現在の日付と時刻が使用されます(上記の例のように)。
PHPmktime()
関数は、日付のUnixタイムスタンプを返します。Unixタイムスタンプには、Unixエポック(1970年1月1日00:00:00 GMT)から指定された時刻までの秒数が含まれます。
構文
mktime(hour, minute, second, month, day, year)
date()
以下の例では、関数内のいくつかのパラメーターから関数を使用し
て日付と時刻を作成し
mktime()
ます。
例
<?php
$d=mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
strtotime()を使用して文字列から日付を作成する
PHPstrtotime()
関数は、人間が読める形式の日付文字列をUnixタイムスタンプ(1970年1月1日00:00:00 GMTからの秒数)に変換するために使用されます。
構文
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日付リファレンスにアクセスしてください。
リファレンスには、各関数の簡単な説明と使用例が含まれています。