在PHP中添加日期

时间:2013-04-25 14:09:09

标签: php datetime

我读到了这个,但不适合我。这是我的代码:

$today = date_create()->format("d/m/Y"); // Today is 25/04/2013
$num_days = GetNumberOfdays();
$end_date = date("d/m/Y", strtotime($today . " + $num_days days")); 

我从$end_date获得的价值是31/12/1969。我做错了什么?

6 个答案:

答案 0 :(得分:2)

请改为尝试:

$end_date = date("d/m/Y", strtotime("+ $num_days days", time()));

编辑:我将$today变量更改为time(),如果您只是在寻找今天的日期,这实际上可以为您提供相同的信息。

答案 1 :(得分:1)

从你想要做的事情来看,你今天甚至不需要$(因为如果没有提供日期,它默认为现在),所以你可以这样做:

 $end_date = date("d/m/Y", strtotime("+ 5 days")); 
 echo $end_date;

结果将是

 30/04/2013

如果您想提供日期,则根据the manual,您需要反过来参数:

strtotime ( string $time [, int $now = time() ] )

答案 2 :(得分:1)

date_create()返回DateTime个对象。

您可以使用DateTime::modify方法。

答案 3 :(得分:1)

$date = new \DateTime(); // Defaults to Today
$num_days = 123;
$date->add(
    new \DateInterval('P' . $num_days . 'D')
);
echo $date->format('d-M-Y');

答案 4 :(得分:0)

$today = date_create()->format("d/m/Y"); // Today is 25/04/2013

$num_days = date_create()->format("d");

echo $end_date = date("d/m/Y", strtotime(" + $num_days days")); 

答案 5 :(得分:0)

<?
// note change of $today format
$today = date_create()->format("d-m-Y"); // Today is 25-04-2013
$num_days = GetNumberOfdays();
$end_date = date("d/m/Y", strtotime("+" . $num_days . " days", strtotime($today)));
?>