【发布时间】:2016-01-30 06:58:09
【问题描述】:
我有一个列类型的表:时间戳。 存储在那里的数据如下所示:
我想做一个简单的选择,看看在给定的开始日期和结束日期之间是否有一个日期。
这是我目前所做的:
$starttime = $_POST['starttime'];
$duration = 15;//$_POST['duration'];
$converted_date = DateTime::createFromFormat('Y-d-m H:i:s', $_POST['starttime']); // POST
$begin_timestamp = $converted_date->getTimestamp();
$quickReact = "SELECT start_time FROM commercial WHERE
UNIX_TIMESTAMP(start_time) >= '$begin_timestamp' AND
UNIX_TIMESTAMP(start_time) <('$begin_timestamp'+'$duration')";
值得一提的是,starttime 是:2015-10-30 16:14:44。
现在,即使我的数据库中的结果应该适合我的查询 - 我看不到它们,因为 UNIX_TIMESTAMP(start_time) 不知何故带来了不正确的值并错误地解析了数据。
我的 php 代码中的这部分不能正常工作:
$converted_date = DateTime::createFromFormat('Y-d-m H:i:s', $_POST['starttime']); // POST
$begin_timestamp = $converted_date->getTimestamp();
因为从2015-10-30 16:14:44 作为参数给出,它返回时间戳:1497111284,它指向 2017 年的某个日期...
我该如何解决?
【问题讨论】:
-
你知道你可以在不转换为时间戳的情况下做到这一点吗?或者这是出于其他原因的要求?
-
不是!你能帮我节省一些时间吗?
-
看看你在比较什么
-
请看下面的答案,如果有什么不明白的地方请告诉我!