我正在尝试在两个时间间隔之间获取结果。我之前使用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'");
答案 0 :(得分: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');
答案 1 :(得分:1)
在我看来你传递的参数太多了mktime()你传递了12个参数吗?
编辑: 使用来自义务答案的代码实际上应该是:
$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)) );
答案 2 :(得分: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 ]]]]]]] )