Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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_Algorithm_Calendar - Fatal编程技术网

PHP中的日历日视图

PHP中的日历日视图,php,algorithm,calendar,Php,Algorithm,Calendar,我正在为现有日历解决方案添加一个日视图选项。像许多实现自己日历的人一样,我正在尝试为谷歌日历建模。他们有一个优秀的日历解决方案,他们的日视图提供了很大的灵活性。在大多数情况下,实施进展顺利;然而,当涉及到冲突事件时,我会遇到一些问题 本质上,我希望事件共享同一个空间,并排进行。同时开始的事件应首先具有最长的事件。在我使用的示例数据集中,我有四个事件: A:10:30-11:30 B:13:30-14:30 C:10:30-11:00 D:10:45-14:00 我能很好地处理A,C和D,问题来自

我正在为现有日历解决方案添加一个日视图选项。像许多实现自己日历的人一样,我正在尝试为谷歌日历建模。他们有一个优秀的日历解决方案,他们的日视图提供了很大的灵活性。在大多数情况下,实施进展顺利;然而,当涉及到冲突事件时,我会遇到一些问题

本质上,我希望事件共享同一个空间,并排进行。同时开始的事件应首先具有最长的事件。在我使用的示例数据集中,我有四个事件:

A:10:30-11:30

B:13:30-14:30

C:10:30-11:00

D:10:45-14:00

我能很好地处理A,C和D,问题来自D。A应该是C的左边,应该是D的左边;每个都占三分之一的宽度(它是固定宽度,所以我可以做简单的数学来计算)。问题是B应该在A和C下面,在D的左边。理想情况下,B会占用与A和C相同的空间量(三分之二的宽度),但我甚至会满足于它只占用三分之一的宽度

我的事件数组类似于以下内容:

$events = array(
  '1030' => array(
    'uniqueID1' => array(
      'start_time' => '1030',
      'end_time' => '1130',
    ),
    'uniqueID2' => array(
      'start_time' => '1030',
      'end_time' => '1100',
    ),
  ),
  '1045' => array(
    'uniqueID3' => array(
      'start_time' => '1045',
      'end_time' => '1400',
    ),
  ),
  '1330' => array(
    'uniqueID3' => array(
      'start_time' => '1330',
      'end_time' => '1430',
    ),
  ),
);
我的计划是为每个事件添加一些索引,包括它与多少事件冲突(因此我可以计算宽度)以及它在该系列中的位置(因此我可以计算左侧值)。然而,这对B没有帮助

我想我可能需要一个使用一些基本几何和矩阵的算法,但我不确定从哪里开始


非常感谢您的任何帮助。

这对您自己的自定义日历开发没有帮助,但当您试图实现类似谷歌日历的界面时,我可以强烈推荐


它接收日历数据的提要,我当前正在将其连接到Outlook Exchange公共日历,然后以月/周/日视图显示。day view可以提供一个很好的例子来实现您最初的请求。

这太棒了!我只希望在实施月视图和周视图时能够实现这一点。我可以使用这个插件来处理所有的渲染,包括我遇到问题的定位,并在我的站点上指向一个返回事件的文件(当然是JSON编码的)。谢谢没问题,希望对你有好处。如果您需要帮助,请给我留言。:-)