PHPを独学するなら、Udemyの動画講座で
PHP 7も使えて快適な エックスサーバー

原因1:タイムゾーンの設定が間違っている

date関数で表示した時刻が正しく表示されない場合は、タイムゾーン(地域ごとの時間帯)の設定が原因かもしれません。たとえば、タイムゾーンの設定が東京ではなく欧米などになっていると、現在の時刻が9時なのに、date関数を実行すると2時や5時などと表示されてしまいます。XAMPPをインストールして何も設定していない場合は、「date.timezone = Europe/Berlin」などと設定されている可能性があります。

次のようなエラーメッセージが表示されることもあります。「タイムゾーンを設定してください」という意味です。

------------------------------
Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for '9.0/no DST' instead in xxxxx.php on line xxxxx
------------------------------

 タイムゾーンを「東京」に設定するには、PHP設定ファイル(php.ini)を開いて「date.timezone」という項目に「Asia/Tokyo」と指定します。

○タイムゾーンを設定する(php.ini)
date.timezone = Asia/Tokyo

date_default_timezone_set関数を使ってPHPスクリプトの中で設定することもできます。

<?php
date_default_timezone_set('Asia/Tokyo');
echo "東京(協定世界時+9時間):" . date("Y/m/d H:i:s");
?>
<hr />
<?php
date_default_timezone_set('UTC');
echo "UTC(協定世界時):" . date("Y/m/d H:i:s");
?>
タイムゾーンを設定する

タイムゾーンを設定する

原因2:mktime関数のパラメータ順が間違っている

date関数で処理するタイムスタンプの取得にmktime関数がよく使われます。

mktime関数では、取得するタイムスタンプの日時を年・月・日・時・分・秒のパラメータで指定しますが、この順番は、時・分・秒・月・日・年です。

特に、右側3つの「月・日・年」を「年・月・日」の順に間違えてしまうと、次のように意図した日付を取得することができません。

<?php
echo date("Y/m/d", mktime(0, 0, 0, 2012, 10, 31));
?>

○実行結果

1970/01/01
<?php
echo date("Y/m/d", mktime(0, 0, 0, 10, 31, 2012));
?>

○実行結果

2012/10/31
スポンサーリンク

こちらもどうぞ

こちらも参考にしてください

関連記事

MySQL

phpMyAdmin

PHPサンプルコード

PHP全般

WordPress

エラーメッセージ

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル
スポンサーリンク