我读到了这个,但对我不起作用。这是我的代码:
$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
. 我究竟做错了什么?
试试这个:
$end_date = date("d/m/Y", strtotime("+ $num_days days", time()));
编辑:如果您只是在寻找今天的日期,我将$today
变量更改为基本上可以为您提供相同的信息。time()
$date = new \DateTime(); // Defaults to Today
$num_days = 123;
$date->add(
new \DateInterval('P' . $num_days . 'D')
);
echo $date->format('d-M-Y');
从看起来你想要做的事情来看,你甚至不需要 $today (如果没有提供日期,它默认为现在),所以你可以这样做:
$end_date = date("d/m/Y", strtotime("+ 5 days"));
echo $end_date;
结果是
30/04/2013
如果你想提供一个日期,你需要相反的参数,根据手册:
strtotime ( string $time [, int $now = time() ] )
date_create()
返回一个DateTime
对象。
您可以使用DateTime::modify方法。
<?
// 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)));
?>
$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"));