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

 従来からあるdate関数などの日付・時刻関数は、32ビットコンピュータでは2038年頃に限界がきます。「PHP入門」という点では今すぐ大問題になるわけではありませんが、実社会ではもう少し早く問題が発生する場合があります。

<?php
for ($i = 2147483640; $i < 2147483650; $i++) {
echo date("Y/m/d H:i:s", $i) . "<br />";
}
?>

○実行結果

2038/01/19 12:14:00
2038/01/19 12:14:01
2038/01/19 12:14:02
2038/01/19 12:14:03
2038/01/19 12:14:04
2038/01/19 12:14:05
2038/01/19 12:14:06
2038/01/19 12:14:07
1901/12/14 05:45:52
1901/12/14 05:45:53

 PHP5から使用可能なdate_create関数やdate_format関数を使用すると、この問題に対処することができます。

<?php
$d = date_create("2050/12/31"); // 日付の作成
echo date_format($d, "Y/m/d") . "<br />";

$d->add(new DateInterval('P5D')); // 日付の加算
echo date_format($d, "Y/m/d") . "<br />";

$d = date_create("NOW");
echo date_format($d, "Y/m/d") . "<br />";

$d = date_create("+ 1 DAY");
echo date_format($d, "Y/m/d") . "<br />";
?>

2行目で作成したDateTimeオブジェクトは2050年の日付で、2038年を過ぎても使えることがわかります。5行目で日付を加算しています。「P5D」は日付間隔を示すDateInterval オブジェクトを作成するときに指定する間隔指示子で、ここでは5日(period・5days)を指しています。2038年を過ぎていますが、日付の加算も問題なく行われることがわかります。

○実行結果

2050/12/31
2051/01/05
2012/08/31
2012/09/01

詳しくは、PHPマニュアルを参照してください。

○PHPマニュアル
date_create --- DateTimeオブジェクトを作成する
date_add --- DateTimeオブジェクトに日付や時刻を加算する
date_format --- 日付や時刻に書式を付ける

スポンサーリンク

こちらもどうぞ

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

関連記事

MySQL

phpMyAdmin

PHPサンプルコード

PHP全般

WordPress

エラーメッセージ

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

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