0

我读到了这个,但对我不起作用。这是我的代码:

$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_date31/12/1969. 我究竟做错了什么?

4

6 回答 6

2

试试这个:

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

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

于 2013-04-25T14:14:00.660 回答
1
$date = new \DateTime(); // Defaults to Today
$num_days = 123;
$date->add(
    new \DateInterval('P' . $num_days . 'D')
);
echo $date->format('d-M-Y');
于 2013-04-25T14:24:35.547 回答
1

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

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

结果是

 30/04/2013

如果你想提供一个日期,你需要相反的参数,根据手册

strtotime ( string $time [, int $now = time() ] )
于 2013-04-25T14:13:56.217 回答
1

date_create()返回一个DateTime对象。

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

于 2013-04-25T14:15:28.143 回答
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)));
?>
于 2013-04-25T14:24:38.600 回答
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")); 
于 2013-04-25T14:16:18.577 回答