使用PHP 5.2为日期添加X周


Adding X weeks to a date using PHP 5.2

我在1and1的共享托管包只包括PHP 5.2.17,所以我不能使用DateTime对象。很烦人!

我现在有这个代码

$eventDate = new DateTime('2013-03-16'); // START DATE
$finishDate = $eventDate->add(new DateInterval('P'.$profile["Weeks"].'W'));

但很明显,这是行不通的。

我如何才能与将与PHP5.2一起使用的代码保持一致?(该代码将X周数添加到特定日期。)

只需使用strtotime()获取时间戳,并添加一周的x*秒

$newTime = strtotime('2013-03-16') + ($numberOfWeeks * 60 * 60 * 24 * 7); // 604800 seconds

或者我刚刚发现的:

$newTime = strtotime('+'.$numberOfWeeks.' weeks', strtotime('2013-03-16'));

或者,您可以使用DateTime类。使用方法modify更改日期(如strtotime):

$d = new DateTime('2013-03-16');
$d->modify('+'.$numberOfWeeks.' weeks');

您可以在PHP 5.2中使用DateTime对象,它只是在PHP 5.3中添加的add方法。您可以在PHP 5.2中使用修改方法。

$finishDate = $eventDate->modify('+'.$profile["Weeks"].' weeks');

请注意,这将修改对其执行操作的对象。因此$eventDate也将被更改。