※このサンプルの解説は、「CGI(Perl)の解説」をすべて読み終えてる方を前提としています。
後になるほど省略されている場合がありますのでできるだけ順番に読んでください。
また、実行に際しては、サーバーでPHPが利用できる事を前提に解説しています。
■ 日付・時刻関数について
PHPで利用できる日付・時刻などを扱うには日付・時刻関数を使用します。
日付・時刻関数のうちよくサンプルで使用するものを中心に説明します。
その中でもよく使うのが「date()」関数です。
「date()」関数には次のような機能があり、ほとんどの処理がこれひとつで可能です。
※詳細に付いては「PHP関連のサイト」 のリファレンス関係のサイトをご参照されるといいでしょう。
- time()
-
現在時刻をUnixエポック(1970年1月1日 00:00:00 GMT)からの通算秒として返します。
- getdate((タイムスタンプ))
-
「タイムスタンプ」の日付情報を連想配列で返します。
「タイムスタンプ」を省略した場合、「time()」関数の値がセットされます。
- date((フォーマット書式), (タイムスタンプ))
-
「タイムスタンプ」を省略した場合、「time()」関数の値がセットされます。
また、「フォーマット書式」の種類については「PHP関連のサイト」のリファレンスの「日付・時刻関数」で詳しく解説されてますので、そちらを参照してください。
- mktime((時), (分), (秒), (月), (日), (年), (サマータイム))
-
与えられたパラメータにより、UNIXのタイムスタンプを返します。
後ろから順に省略することが可能です。
上記の関数は言葉で説明するよりサンプルを見てもらったほうが解かりやすいと思いますので、次のようなサンプルを作ってみました。
表示文字列の最後にある「<br>\n」はそれぞれのHTMLの改行とテキストファイルの改行です。
- 【記述サンプル】
- <?php print <<< END_DOC <HTML> <HEAD> <title>日付・時刻関数の表示サンプル</title> </HEAD> <BODY> END_DOC; print "time() = ".time()."<br>\n"; print "<br>\n"; print "date(\"U\") = ".date("U")."<br>\n"; print "date(\"y/m/d (D)\", date(\"U\")) = ".date("y/m/d (D) ", date("U"))."<br>\n"; print "date(\"Y/n/j (l)\", date(\"U\")) = ".date("Y/n/j (l)", date("U"))."<br>\n"; print "date(\"H:i:s\", date(\"U\")) = ".date("H:i:s", date("U"))."<br>\n"; print "date(\"A h:i:s\", date(\"U\")) = ".date("A h:i:s", date("U"))."<br>\n"; print "date(\"a h:i:s\", date(\"U\")) = ".date("a h:i:s", date("U"))."<br>\n"; print "<br>\n"; $cdate = getdate(); print "\$cdate = getdate();<br>\n"; print "\$cdate[year](年) = ".$cdate[year]."<br>\n"; print "\$cdate[mon](月) = ".$cdate[mon]."<br>\n"; print "\$cdate[mday](日) = ".$cdate[mday]."<br>\n"; print "\$cdate[hours](時) = ".$cdate[hours]."<br>\n"; print "\$cdate[minutes](分) = ".$cdate[minutes]."<br>\n"; print "\$cdate[seconds](秒) = ".$cdate[seconds]."<br>\n"; print "<br>\n"; print "date(\"Y/m/d H:i:s\", mktime(1,2,3,4,5,6)) = "; print date("Y/m/d H:i:s", mktime(1,2,3,4,5,6))."<br>\n"; print "date(\"Y/m/d H:i:s\", mktime(1,2+400,3,4,5,6)) = "; print date("Y/m/d H:i:s", mktime(1,2+400,3,4,5,6))."<br>\n"; print "date(\"Y/m/d H:i:s\", mktime(1,2,3,4+20,5,6)) = "; print date("Y/m/d H:i:s", mktime(1,2,3,4+20,5,6))."<br>\n"; print "date(\"Y/m/d H:i:s\", mktime(1,2,3,4,5-6,6)) = "; print date("Y/m/d H:i:s", mktime(1,2,3,4,5-6,6))."<br>\n"; print "<br>\n"; print <<< END_DOC </BODY> </HTML> END_DOC; ?>