Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
CakePHP-事件';日期及;时间-如何构建_Php_Cakephp_Calendar_Cakephp 1.3_Date - Fatal编程技术网

CakePHP-事件';日期及;时间-如何构建

CakePHP-事件';日期及;时间-如何构建,php,cakephp,calendar,cakephp-1.3,date,Php,Cakephp,Calendar,Cakephp 1.3,Date,TLDR:需要了解用户为事件添加日期和时间的最佳方式,以及如何构建数据库 说明: 当用户添加事件时,他们需要能够选择事件的日期,无论它是否会重复每日/每周/每月,事件的开始和结束时间,还是“全天”,如果只是工作日或周末……等等。基本上,当你创建一个活动时,你可以通过谷歌日历做任何事情,他们也需要能够编辑它(如果这很重要的话)。但是,他们还需要能够添加另一个日期/时间-例如: 添加一个活动,在本周的周一和周三以及三周后,从晚上8点到10点。仅在本周的星期二和星期四,从下午6点到9点 我目前的想

TLDR:需要了解用户为事件添加日期和时间的最佳方式,以及如何构建数据库


说明: 当用户添加事件时,他们需要能够选择事件的日期,无论它是否会重复每日/每周/每月,事件的开始和结束时间,还是“全天”,如果只是工作日或周末……等等。基本上,当你创建一个活动时,你可以通过谷歌日历做任何事情,他们也需要能够编辑它(如果这很重要的话)。但是,他们还需要能够添加另一个日期/时间-例如:

添加一个活动,在本周的周一和周三以及三周后,从晚上8点到10点。仅在本周的星期二和星期四,从下午6点到9点


我目前的想法:

创建一个带有HABTM关系的“日期”表和我的“事件”表。当用户添加一个日期(具有repeat..etc等所有选项)时,它会运行一个函数来处理这些重复/限制…etc,并将所有日期添加到日期表中,其中包含它们的开始/结束时间

但是,如果他们想编辑它,我该如何管理它呢?因为它只创建了多个字段


问题/帮助?:

我在这方面做得对吗?我是CakePHP新手,很难找到最好的方法来做事情……我还没有寻求技术帮助(尽管不会拒绝)——现在,我只需要找到一个想法,找到一种最好的方法来组织一切,以便能够管理它。也许我需要一个“日期”表和“时间”表?可能是一个id引用“日期数据”表中许多单独行的“日期”表


提前非常感谢您的帮助/指导!

您做得很好。让我来分享一下我的想法

如果我设计这个,我会有3个模型:

事件
  • 身份证
  • 用户id
  • 描述
  • 已创建(日期时间)
  • 已更新(日期时间)
日程
  • 身份证
  • 事件id
  • 描述
  • 开始(日期时间)
  • 完(日期时间)
  • 持续时间(时间,如果为空(NULL),则表示这是一个全天事件)
  • 重复时间(例如,下午3:00表示每天下午3点)
  • 重复日(对于每周/每月,如周一、周一和周二、周一到周五)
  • 重复日期(对于每月,例如1表示每月的第1天,31表示每月的第31天或月末)
  • 重复_周年纪念(针对每年的特定日期,例如每年12月25日)
日期
  • 身份证
  • 附表1
  • 开始(日期时间)
  • 完(日期时间)
现在,让我们举一个事件的例子。假设我们希望在2011年5月和6月的每个星期六和星期日下午1:00到下午3:00(两小时)重复一次事件:

事件表包含事件的基本详细信息。此处将保存一条记录

明细表是分开的,因此您可以添加多个明细表。一条记录也将保存在明细表中,并带有以下字段:

  • 持续时间:02:00
  • 开始日期:2011-05-01
  • 完:2011-06-30
  • 重复时间:13:00:00
  • 复读日:01,07(星期日和星期六)
现在,在dates表上,将有17条记录,每发生一次日程安排都有一条记录。我之所以将其分开,是因为我更容易知道活动何时开始。这将非常有用,例如,在创建日历时。dates表的一条记录如下所示:

  • 开始时间:2011-05-01 13:00:00
  • 完:2011-05-01 15:00:00
现在,如果用户编辑日程安排该怎么办?日程安排记录将被编辑。所有日期记录也将被编辑。您不想删除和重新创建日期,因为您可能会将每个记录用于另一个模型(例如,用户可能希望将其他用户标记为活动每个日期的与会者)


我希望这会有所帮助。祝你的项目好运!

非常感谢你的全面回答!一些简单的事情?你使用单独的“重复”字段与“重复类型”和“重复值”或更短的内容来完成计划的方式是否有好处?例如,“每月”和“1”将在第一个月是每月的,或者“每周”和“MTHF”将在周一、周二、周四和周五每周重复一次?再次感谢!@Dave是的,这实际上是个好主意。我只是在思考时写下了这一点,我从来没有做过这样的事情,所以我真的说不出哪一个更好。既然有这么多可能的“重复模式”,你可以把它们放在一个单独的位置建模,并在每次提出新模式时添加一个。到目前为止,这非常好,但事实证明很难获取数据。假设我要提取所有日期在X和Y日期之间的事件(及其日期)。我将如何使用/Event->Schedule->Date setup来完成该操作?