0

私のDBには、実行する必要のあるジョブの期日としてUNIXタイムスタンプがあります。特定の日または特定の時間に、どのジョブを実行する必要があるかを知りたいです。ジョブテーブルをクエリするための次のコードがあります。

$job = Model_Job::find('first',
 array(
  'where' => array(
   array('status_id', 1), // active
   array('due_date', today)
)))

もちろん、最後の配列は単なる擬似コードです。タイムスタンプが今日かどうかを判断するために、次のコードを思いつきました。

date('Ymd', strtotime(Date::forge(time())->get_timestamp())) == date('Ymd', strtotime($job->due_date))

それをクエリとどのように組み合わせるのですか?クエリされた配列をループするより良い方法はありますか?

4

1 に答える 1

0

さて、これはおそらく良い方法ではありませんが、最初に頭に浮かんだのはそれでした。

$ today = strtotime('today 00:00');

そのスニペットの日付を使用しWHERE due_date > $todayて、データベースモデルでそれを行う方法がよくわからないように設定できます。

編集:これは、php構成に正しいタイムゾーン設定があることに依存しています。

セバスチャンが指摘したように、これは将来のすべての日付も取得しますが、同じ手法を使用してその日の最後のタイムスタンプを取得することもできます

$todaystart = strtotime('today 00:00'));
$todayend = strtotime('today 23:59:59'));

BETWEENSQLクエリで演算子を使用します

于 2013-02-20T08:24:31.500 に答える