0

我正在尝试使用开始和结束日期范围查询 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' 以便用户可以使用我表单中的日期范围查询特定的日期。有人可以演示如何将时间设置为“23:59:59”,请记住我希望使用$end表单中的日期变量?

我的 PHP 查询是:

“从订单中选择 OrderId、数量、删除、时间戳,其中时间戳在 '$begin' 和 '$end' 之间”;

非常感谢。

4

3 回答 3

0

strtotime 只是产生一个整数时间戳,所以你可以这样做

$end = date('Y/m/d H:i:s', strtotime($end) + 86400 - 1);

添加一天以获得“明天”,然后删除一秒以获得您开始当天午夜之前的时刻。

或者更简单:

$end = date('Y/m/d', strtotime($end)) . ' 11:59:59';

生成适当的日期,然后自己手动添加时间部分。

于 2013-07-01T22:04:35.110 回答
0

如果您想对时间进行硬编码,只需将其连接起来:

$end = date('Y/m/d', strtotime($end)) . ' 11:59:59';
于 2013-07-01T22:05:15.067 回答
0

strtotime返回一个时间戳。您可以添加 86399(1 天 - 1 秒)

或者您可以使用 strtotime + 语法strtotime($end . "+ 23 hours")

或者如果变量中没有时间信息,您可以自己添加strtotime($end . "+ 23:59")

您的另一个选择是转换为一个日期时间对象,它提供了更多的灵活性

于 2013-07-01T22:05:51.997 回答