【发布时间】:2013-07-02 17:07:50
【问题描述】:
我正在尝试使用开始和结束日期范围查询 MySQL。目前我的变量是:
$begin = $_POST['begin'];
$begin = date('Y/m/d H:i:s', strtotime($begin));
$end = $_POST['end'];
$end = date('Y/m/d H:i:s',strtotime($end));
strtotime($begin) 产生一个可论证的时间戳“00:00:00”。但是我希望strtotime($end) 输出'11:59:59',以便用户可以使用我表单中的日期范围查询特定的日期。请记住我希望使用表单中的$end 日期变量,有人可以演示如何将时间设置为“23:59:59”吗?
我的 PHP 查询是:
"SELECT OrderId, Qty, Del, Timestamp FROM Orders WHERE Timestamp 在 '$begin' 和 '$end' 之间";
非常感谢。
【问题讨论】:
-
你真的是指
11:59:59,而不是23:59:59? -
为什么是 11:59:59 而不是 23:59:59?为 $_POST['begin'] 和 $_POST['end'] 提供了哪些数据?你能展示数据库查询的样本和你要查询的数据类型吗?我问这些问题是因为您可能不需要创建一些人为的结束日期,您只需要适当地查询数据库。
-
抱歉,我的意思是 23:59:59。 $_POST['begin'] 和 $_POST['end'] 是完整的日期(即 02/07/2013)。但是,我正在查询时间戳。
-
@Mike Brant 感谢您的帮助。我已经更新了我原来的问题。使用
$end = date('Y/m/d H:i:s', strtotime($end) + 86400 - 1);是一个好的解决方案吗?它有效,但有没有更简单的方法解决这个问题。