小编Joh*_*ohn的帖子

PHP 5.3 DateTime用于重复发生的事件

我有一个日历应用程序,它使用较新的PHP DateTime类.我有办法处理反复发生的事件,但看起来很糟糕,我想看看你们是否有更好的想法:

  1. 我有一个定期举办的活动,从2009年11月16日开始(2009年11月16日)
  2. 它将每3天发生一次
  3. 该事件将无限期地重演

假设用户查看截止日期为3100的日历 - 此事件应该显示正常情况下每3天重复一次.问题是 - 如何计算该月的那些日子?

=========================================

这就是我基本上这样做的方式,但我知道我更容易丢失一些东西:

  1. 我计算存储为$ daysDiff的月份开始(2009年12月1日)和事件开始日期(2009年11月16日)之间的天数差异
  2. 我减去模数,所以我从一开始就得到3天的因子:$ daysDiff - ($ daysDiff%3)
  3. 为了争论,我们可以说是给了我11月29日3100作为约会.
  4. 然后我反复添加3天到那个日期,直到我在12月31日之前有所有日期

我的主要问题来自第1步.PHP DateInterval :: date_diff函数不计算天数差异.它会给我几年,几个月和几天.然后,我必须捏造这些数字以获得大约在3100年12月左右的估计日期.11/16/2009 +(1090年*365.25天)+(9个月*30.5天)+ 15天

当你像9999年一样走向未来时,这个估计可能会在一个月内消失,然后我必须减去很多3天的间隔才能到达我需要的地方.

php datetime recurring

3
推荐指数
1
解决办法
3537
查看次数

标签 统计

datetime ×1

php ×1

recurring ×1