PHP 日期と時間
- 前のページ PHP 二次元配列
- 次のページ PHP Include
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"); ?>
簡単な時間の取得
時間に常用される文字は以下の通りです:
- 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 日期リファレンスマニュアル。
このマニュアルには、各関数の簡単な説明と使用例が含まれています。
- 前のページ PHP 二次元配列
- 次のページ PHP Include