0

2つの時間間隔の間に結果を取得しようとしています。以前、を使用して作成した別のWebアプリでこれを実行しましたY-m-dが、現在はに問題がありY-m-d H:i:sます。コードは以下のとおりです(セキュリティ上の理由からもちろんマスクされています):

$m5b = date('Y-m-d H:i:s',mktime(0,0,0,0,0,0,date('Y'),date('m'),date('d'),date('H'),date('i')-5,date('s')));
$npm = date('Y-m-d H:i:s',mktime(0,0,0,0,0,0,date('Y'),date('m'),date('d'),date('H'),date('i')+1,date('s')));
$gm = mysql_query("SELECT * FROM acm WHERE lgt !='0000-00-00 00:00:00' AND logged BETWEEN '$m5b' AND '$npm'");
4

3 に答える 3

2

PHP のstrtotime()関数を読むことを真剣にお勧めします。PHP5 の最近のバージョンを使用している場合は、DateTime オブジェクトを使用してください。これにより、コードがクリーンアップされます。

strtotime() で

$t = strtotime('+5 mins');
$mysqlFormatted = date('Y-m-d H:i:s', $t);

DateTime クラスを使用する

$t = new DateTime();
$t->modify('+5 mins');
$mysqlFormatted = $t->format('Y-m-d H:i:s');
于 2011-04-11T22:13:44.283 に答える
1

mktime() にあまりにも多くのパラメーターを渡しているように思えますが、12 個のパラメーターを渡していますか?

編集:obligの回答のコードを使用すると、実際には次のようになります。

$m5b = date("Y-m-d H:i:s" , (time() - (5*60)) ); // 5 mins in seconds
$npm = date("Y-m-d H:i:s" , (time() + (1*60)) );
于 2011-04-11T21:38:36.570 に答える
0

php.netによるmktime:

   int mktime (    
    [ int $hour = date("H") 
    [, int $minute = date("i") 
    [, int $second = date("s") 
    [, int $month = date("n") 
    [, int $day = date("j") 
    [, int $year = date("Y") 
    [, int $is_dst = -1 ]]]]]]] )
于 2011-04-11T21:44:54.647 に答える