Quantcast
Channel: polidog lab++
Viewing all articles
Browse latest Browse all 48

DateTimeを使って、終了日からn日前の開始日を取得する

$
0
0

久しぶりのPHPネタです。

たとえば30日前の日付を取得する場合。
昔のPHPだったら、こんな風に書くかと思います。

<?php
$endDate = date("Y-m-d");
$startDate = date("Y-m-d", strtotime($endDate) - 86400 * 30);
echo $startDate."\n".$endDate."\n";

ところが最近はDateTimeオブジェクトが支流なようなのでしっかりとDateTimeオブジェクトを使った形で書くと以下のようになります。

<?php
$endDate = new \DateTime();
         
$startDate = clone $endDate;
$startDate->sub(new \DateInterval('P30D'));
var_dump($startDate->format("Y-m-d H:i:s"));
var_dump($endDate->format("Y-m-d H:i:s"));

まあ好きな方で実装すればいいとは思いますが、最近のモダンな感じのフレームワークなら、DateTime使った方がいいのではないでしょうか?
そーいえばDateTimeは糞重いイメージがあったんですが、最近はどうなんでしょうか?知ってる方教えてください。


Viewing all articles
Browse latest Browse all 48

Trending Articles