Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有时间戳列表的事件列表,在表格显示中按小时分组,使用PHP。_Php_Datetime_Drupal_Calendar - Fatal编程技术网

带有时间戳列表的事件列表,在表格显示中按小时分组,使用PHP。

带有时间戳列表的事件列表,在表格显示中按小时分组,使用PHP。,php,datetime,drupal,calendar,Php,Datetime,Drupal,Calendar,在重构的过程中,我正在寻找一种优化的算法,用于PHP中的时间表(日历) 我有一个事件列表,它有一个时间戳列表。这必须以表格的方式呈现。当前的代码可以工作,但有a)相当多的怪癖,b)非常不灵活。我希望重构这篇文章,并以优化的方式寻找输入 ,请注意包含小时数的表格的标题。一小时内的时间被归为该列。一小时内有两个时间戳的一个事件可以忽略(根据技术文档,理论上可能只发生) 这个表是用Drupal构建的,我可以从任何数组中构建,每个行都有数组。然而,这里对Drupal部分不感兴趣:) 当前代码(片段):

在重构的过程中,我正在寻找一种优化的算法,用于PHP中的时间表(日历)

我有一个事件列表,它有一个时间戳列表。这必须以表格的方式呈现。当前的代码可以工作,但有a)相当多的怪癖,b)非常不灵活。我希望重构这篇文章,并以优化的方式寻找输入

,请注意包含小时数的表格的标题。一小时内的时间被归为该列。一小时内有两个时间戳的一个事件可以忽略(根据技术文档,理论上可能只发生)

这个表是用Drupal构建的,我可以从任何数组中构建,每个行都有数组。然而,这里对Drupal部分不感兴趣:)

当前代码(片段):


我对Drupal一点也不熟悉,因此我将根据我自己的方法提出一个建议,以满足您的要求,重构一列电影标题的显示,并在适当的时间列中重构开始时间

您将从一系列包含电影标题和开始时间戳的电影(或“电影”)开始。我假设您可以在某个地方检索或创建列标题的小时数组

下面的示例忽略了您正在处理一个对象,或者该对象包含数组,只是为了展示另一种模式方法。这种模式会迭代每部电影,并使用第二个foreach来迭代小时列,并测试电影时间是否与小时时间匹配,而不是您看起来正在进行的所有格式化和排序

<?php foreach($movie_array as $movie){
    echo '<td>'.$movie['title'].'</td>';
    foreach($hours as $hour){
        if(date('H',$movie['starts_at']) == date('H',$hour)){
            echo '<td>'.date('H:i',$movie['starts_at']).'</td>';
        }//endif
        else{
            echo '<td></td>';
        }//endelse
    }//endforeach
 }//endforeach
?>

我已经跳过了表的设置,当然,您可以用您喜欢的设置表的方式替换我的html实体


我认为这是一个可行的模式,它似乎简化了原始模式的逻辑,并且保持了灵活性。希望我没有误解和遗漏您问题中的一个关键部分。

我对Drupal一点也不熟悉,因此我将根据我自己的方法提出一个建议,以满足您的请求,重构一列电影标题的显示,并在适当的时间列中重构开始时间

您将从一系列包含电影标题和开始时间戳的电影(或“电影”)开始。我假设您可以在某个地方检索或创建列标题的小时数组

下面的示例忽略了您正在处理一个对象,或者该对象包含数组,只是为了展示另一种模式方法。这种模式会迭代每部电影,并使用第二个foreach来迭代小时列,并测试电影时间是否与小时时间匹配,而不是您看起来正在进行的所有格式化和排序

<?php foreach($movie_array as $movie){
    echo '<td>'.$movie['title'].'</td>';
    foreach($hours as $hour){
        if(date('H',$movie['starts_at']) == date('H',$hour)){
            echo '<td>'.date('H:i',$movie['starts_at']).'</td>';
        }//endif
        else{
            echo '<td></td>';
        }//endelse
    }//endforeach
 }//endforeach
?>

我已经跳过了表的设置,当然,您可以用您喜欢的设置表的方式替换我的html实体

我认为这是一个可行的模式,它似乎简化了原始模式的逻辑,并且保持了灵活性。希望我没有误解和遗漏您问题的关键部分。

您是否尝试过“”模块。日历模块可用于将事件列为日历。它具有视图、分类和cck支持。定制也很容易

我建议在考虑脚本之前先找出贡献的模块。只有当没有满足我们需求的模块时,我们才能考虑脚本。

您是否尝试过“”模块。日历模块可用于将事件列为日历。它具有视图、分类和cck支持。定制也很容易


我建议在考虑脚本之前先找出贡献的模块。只有当没有满足我们需求的模块时,我们才能考虑脚本。

您能给出一个示例数据集吗?当然可以。就这么做了。谢谢。数据是来自节点负载还是仅仅来自一个节点?你能给出一个示例数据集吗?当然。就这么做了。谢谢。数据是来自节点负载还是仅仅来自一个节点?我很清楚日历和它的混乱:)客户端需要一个非常特定的解决方案,集成在自定义XMLRPC后端中。可以肯定的是,没有Drupal模块。我知道,因为我正在构建它:)我很清楚日历和它的混乱:)客户端需要一个非常特定的解决方案,集成在定制的XMLRPC后端中。可以肯定的是,没有Drupal模块。我知道,因为我正在建造:)
<?php foreach($movie_array as $movie){
    echo '<td>'.$movie['title'].'</td>';
    foreach($hours as $hour){
        if(date('H',$movie['starts_at']) == date('H',$hour)){
            echo '<td>'.date('H:i',$movie['starts_at']).'</td>';
        }//endif
        else{
            echo '<td></td>';
        }//endelse
    }//endforeach
 }//endforeach
?>