1

我有一个表单,用户可以在其中选择 2 个日期,点击提交,然后表单返回在这两个日期之间创建的票证。

表格中的日期格式如下:mm/dd/year

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

提交后,我正在转换日期格式,如下所示:

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

所以 $from 类似于year/mm/dd

我的查询是:

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

这很好用,我的问题是,当开始日期和结束日期相等时,这意味着用户只想查看一天的门票。是否仍然可以以某种方式使用相同的查询?或者我如何修改查询?

4

2 回答 2

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 内置了可以处理这种类型转换的日期/时间函数。如果你使用绑定参数会更好。

于 2013-04-01T20:37:07.717 回答
0

更改您的 $to 和 $from 以使用一天的第一秒和一天的最后一秒:

$from = date("Y-m-d 0:0:0", strtotime($_GET['from']));
$to = date("Y-m-d 23:59:59", strtotitme($_GET['to']));
于 2013-04-01T20:43:05.430 回答