0

我正在尝试在两个时间间隔之间获取结果。我之前使用我构建的另一个 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's answer 中的代码,它实际上应该是:

$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

mktime 根据 php.net:

   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 回答