gpt4 book ai didi

php - 基于日期变量通过 PHP 检索 MySQL 事件

转载 作者:行者123 更新时间:2023-11-30 23:27:28 27 4
gpt4 key购买 nike

大家好:我正在尝试从我拥有的 PHP 文件中的 MySQL 获取数据。用户传入一个日期(当前由“$selectedDate”表示),我希望查询提取与该日期匹配的所有事件。

问题是 MySQL 日期是 unix 格式,意味着它有小时、秒等。传入的日期只是日期,因此不会完全匹配。

所以我想做的是获取我的日期,添加一个负 1 天的变量和另一个正多一天的变量,并根据该范围提取事件。

问题是它不起作用,我不知道为什么!经过大约 2 天的故障排除和搜索,我依靠你我的 stackoverflow friend 们!

有什么想法吗?

  $selectedDate = '9-20-2012';
$dateComponents = preg_split('~[+*/-]~', $selectedDate);
$date1 = mktime(0, 0, 0, ( (int)$dateComponents[0] ), (int)$dateComponents[1]-1, (int)$dateComponents[2]);
$date2 = mktime(0, 0, 0, ( (int)$dateComponents[0] ), (int)$dateComponents[1]+1, (int)$dateComponents[2]);

$query = "SELECT id,title,start, DATE_FORMAT(start, '%Y-%m-%d %H:%i' ) AS startDate, end, url, className FROM $tableName WHERE start BETWEEN '$date1' AND '$date2' ORDER BY start";

$result = mysql_query($query) or die(mysql_error());
$array = array();

while($row = mysql_fetch_assoc($result)){
echo($row);
$array[] = $row;

}

谢谢!

最佳答案

您可以在将日期传递到 SQL 之前将分钟和秒添加到日期中。

  $selectedDate = '9-20-2012';
$dateComponents = preg_split('~[+*/-]~', $selectedDate);
$date1 = mktime(0, 0, 0, ( (int)$dateComponents[0] ), (int)$dateComponents[1]-1, (int)$dateComponents[2]);
$date2 = mktime(0, 0, 0, ( (int)$dateComponents[0] ), (int)$dateComponents[1]+1, (int)$dateComponents[2]);

$date1 = date('Y-m-d h:i',$date1);
$date2 = date('Y-m-d h:i',$date2);

$query = "SELECT id,title,start, DATE_FORMAT(start, '%Y-%m-%d %H:%i' ) AS startDate, end, url, className FROM $tableName WHERE start BETWEEN '$date1' AND '$date2' ORDER BY start";

关于php - 基于日期变量通过 PHP 检索 MySQL 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12517087/

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