gpt4 book ai didi

php - 为什么我的 getTimestamp() 方法在 php 中不能正常工作?

转载 作者:行者123 更新时间:2023-12-01 00:19:55 25 4
gpt4 key购买 nike

我有一个包含列类型的表:timestamp。存储在那里的数据如下所示:

enter image description here

我想做一个简单的选择,看看给定的开始日期和结束日期之间是否有一个日期。

这是我目前所做的:

$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')";

值得一提的是,开始时间是: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 年的某个日期...我该如何解决?

最佳答案

跳过转换:

$starttime = $mysqli->escape_string($_POST['starttime']);
$duration = 15;//$_POST['duration'];

$query = "SELECT start_time FROM commercial WHERE start_time >= '$starttime' AND start_time < '$begin_timestamp'+ INTERVAL $duration SECOND";

当然,您永远不应该将用户提供的数据注入(inject)到 SQL 查询中。这只是一个概念证明。

关于php - 为什么我的 getTimestamp() 方法在 php 中不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33426016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com