PHP|DateTimeクラスの使い方
スポンサーリンク
PHP5.2から、DateTimeクラスが標準で使えるようになっています。
PHPのDateTimeクラスは、フレームワークなどの日時処理系のクラスを使わなくていいくらい便利なのでおすすめです。
まずは簡単に使い方
まずは、インスタンスを生成する。
インスタンス生成時のDateTime()の引数には日時を指定できる。
引数なしでインスタンスを作成すると現在日時となる。
$date = new DateTime();
その後、format()にて日付を生成します。
format()の引数に、日付の書式を指定します。
echo $date->format('Y-m-d H:i:s');
フォーマットの種類
DateTimeクラスで使えるフォーマットの種類です。
文字 | 説明 | 戻り値 |
---|---|---|
Y | 4桁の年 | 2017 |
m | 月(ゼロ詰め) | 01~12 |
n | 月(ゼロ詰めなし) | 1~12 |
d | 日(ゼロ詰め) | 01~31 |
j | 日(ゼロ詰めなし) | 1~31 |
z | 年間の通算経過日 | 0~365 |
g | 12時間単位の時 | 1~12 |
G | 24時間単位の時 | 0~23 |
i | 分 | 00~59 |
s | 秒 | 00~59 |
A | 午前/午後 | AMまたはPM |
a | 午前/午後 | amまたはpm |
現在の日時を表示する
DateTimeクラスのインスタンス生成時に日時を指定しなければ、現在日時のオブジェクトになります。
$date = new DateTime(); echo $date->format('Y-m-d H:i:s');
日時を指定する方法
日時を指定する方法は、いくつか方法があります。
■文字列を使う方法
$date = new DateTime('2018-07-15 14:02:15'); echo $date->format('Y-m-d H:i:s');
■setDate()を使って年と日を指定する
$date = new DateTime(); $date->setDate(2018,7,17); echo $date->format('Y-m-d H:i:s');
※この場合、時分秒は今の時間となる。
■setTime()で時間も指定する
$date = new DateTime(); $date->setDate(2018,7,17)->setTime(14,15,00); echo $date->format('Y-m-d H:i:s');
※2018-07-17 14:15:00 と出力されます。
現在時刻のタイムスタンプを取得する
getTimestamp()でタイムスタンプを取得できます。
$date = new DateTime(); echo $date->getTimestamp();
インスタンス作成時に日時を渡すフォーマットを指定する
createFromFormat()を使うとDateTimeクラスのインスタンス作成時に渡す日時のフォーマットを変更できます。
createFromFormat()を使わない時は、yyyy-mm-dd または yyyy/mm/dd みたいな決まった書式で渡さないとダメ。
$format = 'Y年m月d日 H時i分s秒'; $date = DateTime::createFromFormat($format, '2018年07月16日 14時15分00秒'); echo $date->format('Y-m-d H:i:s');
更新日:2018年08月25日
作成日:2018年07月15日