递增PHP日期

递增PHP日期,php,sql,date,Php,Sql,Date,我正在编写一个应用程序的一部分,用户可以在其中添加跨越多天的事件。所以我进入了$begindate、$enddate和$type的帖子。类型将为每日、每周或每月。我正在尝试处理每日的请求。我需要做的是在MyDates表中插入每天的一行,包括begindate、enddate,如果选择daily,则插入日期之间的每一天。由于月份的天数明显不同,我不能简单地在php日期的天数部分加上1或7,我该如何处理 我知道 我收到邮件的所有日期 我还没有太多的PHP日期对象的工作,任何帮助将不胜感激 $days

我正在编写一个应用程序的一部分,用户可以在其中添加跨越多天的事件。所以我进入了$begindate、$enddate和$type的帖子。类型将为每日、每周或每月。我正在尝试处理每日的请求。我需要做的是在MyDates表中插入每天的一行,包括begindate、enddate,如果选择daily,则插入日期之间的每一天。由于月份的天数明显不同,我不能简单地在php日期的天数部分加上1或7,我该如何处理

我知道

我收到邮件的所有日期

我还没有太多的PHP日期对象的工作,任何帮助将不胜感激

$days = 1; // Or 7 or 30, or anything..
$nextday = date('Y-m-D', strtotime($begindate) + 86400 * $days);
或者使用
DateTime
对象

$days = 1; // Or again 7.. or 30..

$begin = new DateTime($begindate);
$begin->add(new DateInterval('P' . $days . 'D'));
$nextday = $date->format('Y-m-D');
如果您需要增加额外的周数或月数,请查看详细信息

或者使用
DateTime
对象

$days = 1; // Or again 7.. or 30..

$begin = new DateTime($begindate);
$begin->add(new DateInterval('P' . $days . 'D'));
$nextday = $date->format('Y-m-D');
如果您需要增加额外的周数或月数,请查看详细信息。

首先,尽可能使用该课程。然后,退房

此外,该类还可以按您请求的间隔自动创建一系列DateTime对象,这将使接受不同的重复间隔变得更加容易:

$start = new \DateTime($beginDate);
$end = new \DateTime($endDate);
$interval = new \DateInterval('P1D');
$period = new \DatePeriod($start, $interval, $end);
foreach ($period as $day) {
    // will iterate over each day in the period
}
DateTime在其构造函数中接受的字符串方面非常灵活(请查看引用),这使得从今天开始获取日期变得非常简单。例如,如果您想要一个表示从现在开始一周的DateTime对象,
$date=new\DateTime(“+1周”)
将为您完成此操作。

首先,尽可能使用该类。然后,退房

此外,该类还可以按您请求的间隔自动创建一系列DateTime对象,这将使接受不同的重复间隔变得更加容易:

$start = new \DateTime($beginDate);
$end = new \DateTime($endDate);
$interval = new \DateInterval('P1D');
$period = new \DatePeriod($start, $interval, $end);
foreach ($period as $day) {
    // will iterate over each day in the period
}

DateTime在其构造函数中接受的字符串方面非常灵活(请查看引用),这使得从今天开始获取日期变得非常简单。例如,如果您想要一个表示从现在开始一周的DateTime对象,
$date=new\DateTime(“+1周”)
会帮你的。

棒极了,工作完美无瑕。我以前从未使用过DatePeriod,非常酷。谢谢你的帮助。为什么在DateTime对象声明之前?当在5.3中向PHP添加名称空间支持时,尝试从您自己的也使用名称空间的类调用DateTime类将抛出错误,因为它将在您的名称空间中查找DateTime类(更多关于名称空间解析的信息)。前面的斜杠只是告诉PHP查看全局名称空间。如果您没有使用它们(或者使用的是不支持它们的PHP版本),就不要使用它们。是的,我在5.3上,所以效果很好。再次感谢。太棒了,工作完美无瑕。我以前从未使用过DatePeriod,非常酷。谢谢你的帮助。为什么在DateTime对象声明之前?当在5.3中向PHP添加名称空间支持时,尝试从您自己的也使用名称空间的类调用DateTime类将抛出错误,因为它将在您的名称空间中查找DateTime类(更多关于名称空间解析的信息)。前面的斜杠只是告诉PHP查看全局名称空间。如果您没有使用它们(或者使用的是不支持它们的PHP版本),就不要使用它们。是的,我在5.3上,所以效果很好。再次感谢。