• 締切済み

データの取得に関して

データを取得する際、表示開始日の午前10時になったらデータを取得するような形にしたのですが、 下記のようにすると、その日になると同時に取得してしまいます。(10時より前に) 例えば、表示開始日が11月1日だった場合、 11月1日の10時になったら表示するようにしたいのですが、どういう感じにすればいいでしょうか。 <?php $time=date("H"); if($time>9) { select * from test where start<=getdate() } else { select * from test where start<getdate() }

みんなの回答

  • satoh
  • ベストアンサー率77% (17/22)
回答No.5

sqlのgetdate()がGMTになっている! くらいしか思いつきません…。 PHPの文法的には、やっていることは正しいように思えます。 あとは、SQLの部分でしょうけど、これだけではわかりません。 もう少し、詳しく環境や動作をかかれてみてはいかがでしょうか。

回答No.4

ちなみに、このSQLは簡略化したのかどうかわかりませんが、 getdate()では以下のように出力されますので、 上記SQLを真とした場合にはSQLエラーですね。 getdate() Array ( [seconds] => 45 [minutes] => 18 [hours] => 10 [mday] => 4 [wday] => 5 [mon] => 11 [year] => 2005 [yday] => 307 [weekday] => Friday [month] => November [0] => 1131067125 )

回答No.3

<?php $time=date("H"); if($time == 10) { select * from test where start<=getdate() } ?> Elseで何か処理して取得しているせいではないのですか? <? $test = 09; if($test > 9) { print("a"); } else { print("b"); } ?>

phptest
質問者

補足

例えば、表示開始日が11月1日のデータがあるとすると、11月1日の10時以前は、10月31日までのデータを表示したくて、11月1日の10時を過ぎた段階で、表示開始日が11月1日までのデータを取得したいです。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>月と日を指定せず、時間のみの指定でできるようにしたい では、表示開始日とは何を意味しているのでしょうか?

phptest
質問者

補足

DBの表示開始日を見てその表示開始日の10時以降の データを表示するようにしたいのですが。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$date = date("m/d H"); if($date >= "11/01 10"){ #表示開始日を過ぎている } else { #表示開始日は、まだ過ぎていない } ってかんじでどうでしょう

phptest
質問者

補足

ありがとうございます。 上記の場合だと、11月1日に限られてしまうと思うのですが、データ的には毎週増えていくような感じです。 ですので、月と日を指定せず、時間のみの指定でできるようにしたいのですが、いい方法があるでしょうか。

関連するQ&A