web-dev-qa-db-ja.com

JFactory :: getDate()の時間オフセット

この質問では「オフセット」と言いますが、実際にはタイムゾーンではありません。私が探しているのは、「今」を1日、1週間、または1か月、さらに過去にオフセットすることです。

http://docs.joomla.org/JFactory/getDate

ドキュメントでは、整数になる可能性のあるタイムゾーンオフセットを示しています。これにより、正常に機能しますが、最初の値にnullまたはfalseを渡すと問題が発生する可能性があります。デフォルトの日付オブジェクトを渡すこともできますが、これはAPIを使用することのメリットを活かしているようです。

だから私がしたいのは次のようなものです。

$now = JFactory::getDate();
$now->minusOffset(24 HOURS);
$query->where('created >= \'$now->toMySQL()\'');

これを行う簡単な方法はありますか?それとも通常のPHP日付オブジェクトをgetDateに変換するのが最善ですか?これまでのところ、私の検索では何も見つかりませんでした。

1
Jordan Ramstad

JDateDateTimeクラスを拡張するだけなので、 DateTime で使用可能なあらゆるものを使用できます。

そんな感じ:

$yesterday = JFactory::getDate('now -1 day');

または modify() を使用します

$now = JFactory::getDate();
$now->modify('-1 day');
2
Fedik