concrete5 逆引きリファレンス

Dateヘルパーで日付オブジェクトを扱う

2021/06/22 22:01
Dateヘルパーで日付型のオブジェクトを文字列から取得する

Dateヘルパーで、Concrete5の日付オブジェクトをtoDateTime()で取得します。

PHPのstrtotime()と文字列は同じものが使えますが、日付オブジェクトはtimezoneも属性として持ちます。
object(DateTime)#2188 (3) {
["date"]=> string(26) "2021-03-18 00:00:00.000000"
["timezone_type"]=> int(3)
["timezone"]=> string(10) "Asia/Tokyo"
}

以下のような文字列で日付オブジェクトを取得できます。

$dh = Core::make('helper/date');
$fromtime = $dh->toDateTime('2021/3/18');
$fromtime = $dh->toDateTime('Wednesday, August 20, 2020');
$fromtime = $dh->toDateTime('last Saturday'); //前の土曜
$fromtime = $dh->toDateTime('-1 day'); //1日前
$fromtime = $dh->toDateTime('-1 month'); //1月前
$fromtime = $dh->toDateTime('last day of last month'); //先月末

2つの日付の日数を求めるにはgetDeltaDays()を使います。

$dh = Core::make('helper/date'); 
$fromtime = $dh->toDateTime('last day of last month');
$totime = $dh->toDateTime('now');
echo $dh->getDeltaDays($fromtime,$totime,'user');

22などの日数が整数で取得できます。