Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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_Mysql_Calendar_Date - Fatal编程技术网

Php 如何处理无限期重复的日期

Php 如何处理无限期重复的日期,php,mysql,calendar,date,Php,Mysql,Calendar,Date,我正在使用PHP和MySQL在一个网站上实现一个相当简单的日历。我希望能够处理无限期重复的日期,但不确定最好的方法 对于一个有时间限制的重复事件,只需将时间范围内的每个事件添加到我的db表中,并使用某种形式的递归id对它们进行分组似乎是有意义的 但是,当事件重复的频率没有限制时,是否最好 a) 在数据库中放置特定时间段(如未来2年)的记录,然后随着时间的推移定期检查并添加新记录-问题是,如果有人展望未来3年,事件将不会出现 b) 实际上并没有每个事件的记录,但当我在php代码中检查指定时间段内的

我正在使用PHP和MySQL在一个网站上实现一个相当简单的日历。我希望能够处理无限期重复的日期,但不确定最好的方法

对于一个有时间限制的重复事件,只需将时间范围内的每个事件添加到我的db表中,并使用某种形式的递归id对它们进行分组似乎是有意义的

但是,当事件重复的频率没有限制时,是否最好

a) 在数据库中放置特定时间段(如未来2年)的记录,然后随着时间的推移定期检查并添加新记录-问题是,如果有人展望未来3年,事件将不会出现

b) 实际上并没有每个事件的记录,但当我在php代码中检查指定时间段内的事件时,计算在这段时间内是否会发生重复事件-问题是,这意味着在我想将其他信息(出席率等)与该事件关联时,没有针对每个事件的特定记录,我认为这是一种痛苦。看起来也有点慢


有人试过这两种方法吗?如果是,结果如何?或者我还缺少其他巧妙的方法吗?

我会采用方法b,如果有人添加了一些东西,我会创建一个“真实”的事件条目

编辑:
你预计会发生多少周期性事件?会是什么样的周期性事件?(例如:每周一、每两周等)

我会为重复的事件创建一个记录。然后,如果必须在特定日期添加更多信息,我会为附件创建一个记录,并引用重复事件。

第三次投票支持选项B-理由是数据只能在有限的时间范围内查询(即开始和结束)。出于性能方面的考虑,我建议,除了存储第一次出现的日期/时间、出现的次数和频率之外,您还可以在数据库中保存最后一次出现的日期/时间


C.

根据我的经验,生成重复的日期并检查特定日期是否在该模式下并不是那么糟糕。一年只有365天。一万天已经快三十年了。这意味着,在实际场景中,输入/输出的大小相对较小


此库可能会有所帮助(但它是javascript):

感谢您的回复。是的,我没想过要把这两个结合起来——听起来这可能是目前为止最好的选择。我想非常灵活地确定他们可以重复的频率——以及每周、每周一、每月等。如果可能的话,我想包括“本月最后一个星期五”等内容。好的,谢谢。与Maxem的建议非常相似,单记录事件仅在有人关联某个事件时创建。我觉得一个计划正在形成……;)干杯,谢谢你!听起来,组合是一种解决问题的方法,所以大家一致认为,只有当我需要将某个内容与事件关联时,才应该使用(b)并在db中创建一个条目。马克西姆是第一个得分的球员,但非常感谢大家,非常感谢