【独学PHP】DateTimeクラス

※この記事は「2020年9月26日」に更新しました。

独学できる PHP講座。

今回は、DateTimeクラスについて。

前回は、オブジェクト指向について、簡単に解説しました。

オブジェクト指向

【独学PHP】オブジェクト指向

2020年9月19日

サンプルプログラムの入門としてカレンダーを作成することは、PHP の学習では定番です。

簡単すぎず、難しすぎるということもなく、さらにそこから予約システムなどに応用することで、今後のステップアップにも繋がるからです。

DateTimeクラスを学習すれば、オブジェクト指向を取り入れつつ、カレンダー作成の事前知識も習得できます。

それでは、解説していきます。

DateTimeクラス

DateTimeクラスは、日付や時刻の演算を行うためのクラスです。

以前から関数型のライブラリとして同じような機能を持つ関数はあります。

しかし、オブジェクト指向に慣れるためにも、積極的に DateTimeクラスを使っていきたいと思います。



現在の日時を作成

DateTimeオブジェクトを作成して、現在の日時を取得します。

<?php
$date = new DateTime();
print $date->format('Y年m月d日 H:i:s');
?>

まず、DateTimeオブジェクト(インスタンス)を作成します。

引数なしの場合、現在の日時がセットされます。

formatメソッドは、DateTimeオブジェクトの内容を整形するためのメソッドです。

ここでは、指定した内容で画面表示させています(Y年m月d日 H:i:s)。

実行結果は以下の通りです。

現在の日時を作成

日付や時刻文字列から作成

DateTimeオブジェクトを作成して、指定した日付や時刻を取得します。

<?php
$date = new DateTime('2019/11/28 10:31:55');
print $date->format('Y年m月d日 H時i分');
?>

日付、時刻として解釈できる文字列を指定して画面表示させています。

実行結果は以下の通りです。

日付や時刻文字列から作成

個別に日付や時刻を設定する

DateTimeオブジェクトを作成して、個別に日付や時刻を設定します。

<?php
$date = new DateTime();
$date->setDate(2019, 11, 28);
$date->setTime(10, 31, 55);
print $date->format('Y年m月d日 H時i分');
?>

実行結果は以下の通りです。

個別に日付や時刻を設定する

日付や時刻を操作する

modifyメソッドを使えば、タイムスタンプを変更することができます。

<?php

$date1 = new DateTime();
$date1->modify('+1 day');  // 1日後

$date2 = new DateTime();
$date2->modify('-1 month');  // 1ヵ月前

$date3 = new DateTime();
$date3->modify('first day of this months');  // 当月1日

$date4 = new DateTime();
$date4->modify('last day of this months');  // 当月末日

$date5 = new DateTime();
$date5->modify('first day of next months');  // 来月1日

$date6 = new DateTime();
$date6->modify('first day of last months');  // 先月1日

print $date1->format('Y年m月d日 H:i:s');
print '<br />';
print $date2->format('Y年m月d日 H:i:s');
print '<br />';
print $date3->format('Y年m月d日 H:i:s');
print '<br />';
print $date4->format('Y年m月d日 H:i:s');
print '<br />';
print $date5->format('Y年m月d日 H:i:s');
print '<br />';
print $date6->format('Y年m月d日 H:i:s');
print '<br />';

?>

実行結果は以下の通りです。

日付や時刻を操作する

HTML と CSS を学習すれば、カレンダーの表示部分は作成できる

DateTimeクラスを学習すれば、カレンダーを作成することができます。

例えば、リンクをクリックすると翌月のカレンダーを表示させたり、先月のカレンダーを表示させたりすることが可能です。

実際に表示させる部分に関しては、HTML を使います。

PHP は、HTML と混在して書くことができるのが特徴なので、動的な機能を簡単に追加することができます。

CSS でデザインを整えることができるので、カレンダーを見やすくすることも可能です。

最後に

いかがでしょうか。

今回は、DateTimeクラスについて、解説しました。

データベースを使わないサンプルプログラムとしては、カレンダー作成は定番です。

DateTimeクラスを使わなくてもカレンダー作成は可能ですが、オブジェクト指向を学ぶためにも積極的に使っていきましょう。