php - PHP 中的日历日 View

标签 php algorithm calendar

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

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

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 没有帮助。

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

非常感谢任何帮助。

最佳答案

这对您自己的自定义日历开发没有帮助,但是当您尝试实现类似 google 日历的界面时,我强烈推荐 jQuery fullcalendar plugin .

它需要日历数据的提要,我目前正在将它连接到 Outlook Exchange 公共(public)日历,然后以月/周/日 View 显示。日 View 可能是实现您的原始请求的一个很好的例子。

关于php - PHP 中的日历日 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2436306/

相关文章:

javascript - 关于jquery ajax,php文件已运行但成功功能不起作用

algorithm - 调度算法最短作业优先

java - 为什么不支持在java.time.Instant中增加几周?

swift - 获取希伯来语月份中的某一天作为文本

javascript - 有没有可以在没有任何事件的情况下显示日历的插件

php - drupal 7 新模块安装链接不显示

linux - Munin 动态图缩放(dynazoom)不起作用(CentOS6、nginx、php-fpm)

php - 选择现在之前 5 分钟的时间

algorithm - 用于对无向图进行三角剖分的通用算法?

algorithm - 最大利润-记忆化、DP、最优性