2013-04-01 116 views
1

我有一个表单,用户可以选择2个日期,点击提交,表单返回在这两个日期之间创建的票据。转换mysql unix时间和使用BETWEEN

从表格的日期都是这种格式:MM/DD /年

在mysql中的日期被保存为Unix的时间戳。

后提交,我转换日期格式是这样的:

$from = $_POST['from'] 
    $to = $_POST['to']; 
    $from = date("Y/m/d",strtotime($_GET['from'])); 
    $to = date("Y/m/d",strtotime($_GET['to'])); 

于是从$是一样的东西年/ MM/DD

我的查询:

$get = mysql_query("SELECT id FROM tickets WHERE date_created BETWEEN UNIX_TIMESTAMP('$from') AND UNIX_TIMESTAMP('$to')"); 

这工作正常,我的问题是,当从和到日期相等,这意味着用户只想看到一天的门票。以某种方式使用相同的查询仍然可行吗?或者我如何修改查询?

+1

我会做的是明确设置时间从$ $和对分别为00:00:00和23:59:59,无法回想起它的PHP OTOMH – Psytronic

回答

2

为什么不这样做?

$from = date("Y-m-d 00:00:00",strtotime($_GET['from'])); 
$to = date("Y-m-d 23:59:59",strtotime($_GET['to'])); 

而且,你混合$_GET$_POST要小心。 MySQL内置了可以处理这种类型转换的日期/时间函数。如果你使用绑定参数会更好。

+0

谢谢你。为我工作。 – DanielOlivasJr

0

更改$并从$使用当天的第一,第二和一天的最后一秒:

$from = date("Y-m-d 0:0:0", strtotime($_GET['from'])); 
$to = date("Y-m-d 23:59:59", strtotitme($_GET['to']));