いま何時?

はじめての PHP

最初の PHP ページを作ってみましょう。

PHP の書き方は HTML と同じです。私の HTML5とCSS3 で HTML を勉強したかたは,はじめてのHTML5 の雛形をメモ帳にコピー&ペーストして,その <body>...</body> の中身を次のように書き換えてください。

<h1>いま何時?</h1>

<p>いま
<?php
  date_default_timezone_set('Asia/Tokyo');
  echo date("Y 年 m 月 d 日 H 時 i 分 s 秒");
?>
です。</p>

これをたとえば time.php という名前で保存します。ファイル名のピリオドの左側は半角英数字なら何でもかまいませんが,ピリオドの右側(拡張子)は必ず php とします。Windowsの「メモ帳」を使う場合は,保存のとき「テキスト文書」ではなく「すべてのファイル」を選んで保存します。

これをサーバに送り,ブラウザで見てみましょう。「いま 2024 年 04 月 25 日 00 時 46 分 11 秒です」のように表示されたでしょうか。

解説

PHPのプログラムは <?php ... ?> で囲んで書きます(ファイル末の ?> は省略できます)。

最初の

date_default_timezone_set('Asia/Tokyo');

はタイムゾーンの設定です(PHP 5.1.0以降で必要です)。ここではタイムゾーンを日本標準時(Asia/Tokyo)に設定しました。

echo は出力の命令,date() は日付・時刻を文字列として返す関数です。date() に与える文字列によって次の値が返されます。

d01..31
G0..23
H00..23
i00..59
j1..31
m01..12
n1..12
s00..59
w0..6
Y2000..
y00..

曜を日本語で出すには次のようにすればいいでしょう。

今日は 木曜日です。

<p>今日は
<?php
  $week[0] = "日";
  $week[1] = "月";
  $week[2] = "火";
  $week[3] = "水";
  $week[4] = "木";
  $week[5] = "金";
  $week[6] = "土";
  echo $week[date("w")];
?>
曜日です。</p>

なお,これらの例の出力を注意深く見ると,最初の <?php の直前の改行はそのままブラウザに送られて余分なスペースとなって見えるのに対して,最後の ?> の直後の改行は出力されないことがわかります。これは PHP の仕様です。直後に改行がもし必要なら,もう一つ余分な改行を入れておきましょう。

応用――ファイルの更新日時

応用として,そのファイルの最終更新日時を返すようにしてみましょう。

このページは 2014 年 07 月 24 日 10 時 30 分 53 秒に更新されました。

<p>このページは
<?php echo date("Y 年 m 月 d 日 H 時 i 分 s 秒", filemtime("time.php")); ?>
に更新されました。</p>

タイムゾーン

PHP 5.1.0 で日付・時刻関連の関数が書き直され,タイムゾーンの設定が必要になりました。日本のタイムゾーンは Asia/Tokyo です。タイムゾーンの設定は次のようにします:

<?php
  date_default_timezone_set('Asia/Tokyo');
?>

設定されたタイムゾーンは date_default_timezone_get() で調べられます。

サーバの管理者であれば /etc/php.ini

date.timezone = "Asia/Tokyo"

と書いておくことでも対処できます。


Last modified: