gpt4 book ai didi

php - 创建时间表时遇到问题

转载 作者:行者123 更新时间:2023-11-29 14:32:25 25 4
gpt4 key购买 nike

我正在尝试使用 MySQL 表中的数据制作一个时间表,其中包含每个事件的日期、开始时间和持续时间。

我现在的逻辑是这样的。

查找星期一的所有事件,将星期一放入数组中查找包含星期二的所有事件,并将其放入星期二的数组中

等等

然后我在每个数组上运行一个 for every 循环,以遍历一天中的每个时间段(9-5),如果它与当前事件匹配,则创建一个表格单元格,如果不匹配,则创建并清空单元格,最后如果事件持续时间超过 1 个槽位,则不要放置任何东西。这是我的上述代码:

function createTableEvent($day,$previousfinish)
{
$completeDay = '';
$day = explode(',',$day);

$ev = $day[0];
$start = $day[1];
$end = $day[2];
$event = "<div class=\"table_event\">$ev<br>Starts:$start<br>Ends:$end<br></div>";

$times= array('09','10','11','12','13','14','15','16','17');

//TIMES
foreach ($times as $time)
{


if($start == $time.":00" && $previousfinish == !)
{
$completeDay .= "<td class=\"$time\" colspan=\"$end\">
<div class=\"table_event\">$event</div></td>";
$previousfinish = $end;
}
else if($previousfinish > 1
{
}
else
{
$completeDay .= "<td class=\"$time\" colspan=\"1\"></td>";
}

}
return $completeDay;

}

如果单元格大于 1,我想跳过该单元格的原因是,如果一个事件运行超过一个 block ,我将列跨度设置为事件的持续时间,因为它不应该在该单元格中放入一个单元格如果前一个事件长于一个区 block ,则下次。

我的输出适用于单小时事件,但不适用于一天有 1 个 2 小时事件和第二个 1 小时事件的情况。我的代码仍然会在应该为空的时间生成额外的单元格。

任何意见或帮助都会非常有用

最佳答案

我注意到的明显事情是:

  • 第二个 if 语句(紧接在“else”之后)的条件不是随后是结束符“)”。
  • 我不知道这是否是想要的,但没有命令可以每当满足此条件时
  • 在 for 循环内的第一个条件下,您比较$previousfinish 参数为 '!'。这真的是你想做的吗?您是想将其与“1”进行比较吗?

我注意到的其他事情是,如果满足最后一个条件,您将输入事件时间而不是事件名称(就像您一开始所做的那样)。

我试图进一步调查这个问题,但这有点困难,因为我不知道参数中传递给函数的数据是什么。

我建议您解决上述问题,看看这是否可以解决您的问题。如果没有,如果您提供传递给函数的示例数据,我将很乐意进一步研究这个问题。

此外,我重新排列了代码以提高可读性,如果您发现更好 -

<?php

function createTableEvent($day, $previousfinish)
{
$completeDay = '';

list ($ev, $start, $end) = explode(',',$day);

$event = "<div class=\"table_event\">$ev<br>Starts:$start<br>Ends:$end<br></div>";

//TIMES
foreach (array('09','10','11','12','13','14','15','16','17') as $time)
{
if ($start == ($time.":00") && $previousfinish == !)
{
$completeDay .= "<td class=\"$time\" colspan=\"$end\">
<div class=\"table_event\">$event</div></td>";
$previousfinish = $end;
}
else if($previousfinish > 1)
{
}
else
{
$completeDay .= "<td class=\"$time\" colspan=\"1\"></td>";
}
}

return $completeDay;
}
?>

关于php - 创建时间表时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9750350/

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