Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中添加月底后的天数_Php_Date_Strtotime - Fatal编程技术网

如何在PHP中添加月底后的天数

如何在PHP中添加月底后的天数,php,date,strtotime,Php,Date,Strtotime,我的目标是打印决斗日期。 到期日公式是月底加上天数,在我的例子中是7天。 我怎样才能做到这一点? 我在实际结果上的回显值为“截止日期:1970年1月8日” 我的预期结果是“截止日期:2018年6月7日” 提前感谢您的帮助我建议您使用DateTime类和相关函数: $invoice_date = "11/05/2018"; $days = 7; $input = date_create_from_format('d/m/Y', $invoice_date); $result = $input-&

我的目标是打印决斗日期。 到期日公式是月底加上天数,在我的例子中是7天。 我怎样才能做到这一点? 我在实际结果上的回显值为“截止日期:1970年1月8日” 我的预期结果是“截止日期:2018年6月7日”


提前感谢您的帮助

我建议您使用
DateTime
类和相关函数:

$invoice_date = "11/05/2018";
$days = 7;

$input = date_create_from_format('d/m/Y', $invoice_date);
$result = $input->add(new DateInterval("P${days}D"));

$dueDate = $result->format('d/m/Y');

echo "Due date: $dueDate";
输出:

Due date: 11/05/2018
Date : 11/05/2018 
Due : 18/05/2018

尝试使用DateTime类:

$date = DateTime::createFromFormat('d/m/Y', '11/05/2018');

$dueDate = clone $date;
$dueDate->modify('+7 days');

echo 'Date : ' . $date->format('d/m/Y') . "\n";
echo 'Due  : ' . $dueDate->format('d/m/Y') . "\n";
输出:

Due date: 11/05/2018
Date : 11/05/2018 
Due : 18/05/2018

请参见此处:

除了未定义的变量错误之外,您的编码逻辑是完美的

$invoice_date = "11/05/2018";
$day  = 7;//in below statements used as day
$is_invoice = false;

$date = date("d/m/Y", strtotime($invoice_date));

if ($is_invoice) {
    $dueDate = date('d/m/Y', strtotime("+$day days", strtotime($date)));
} else {
    $dueDate = date('t/m/Y', strtotime($date));
    $dueDate = date('d/m/Y', strtotime("+$day days", strtotime($date)));
}

echo "Due date: $dueDate";

未定义变量$day//每天换天

月底+7天是我读到的。。。如果我错了,请纠正我:

$invoice_date= '11/05/2018';
$days= 7;

$dueDate= DateTime::createFromFormat('d/m/Y', $invoice_date);
$dueDate->modify('last day of this month')->modify('+7 days');
echo $dueDate->format('d/m/Y');

发票日期2018年11月5日返回2018年7月6日

,第一个strotime函数中的
$days
如何?它应该是静态字符串而不是变量吗?或者也应该在某个地方对其进行定义?我猜是前者,但不管怎样,在你的例子中都是错误的;已更正此问题是一年前的问题,由delboy解决。谢谢你的帮助。这个问题是一年前的事了。事情解决了。使用delboys解决方案。谢谢你的帮助,伙计。这个问题一年前就解决了。谢谢你的帮助。谢谢维纳亚卡穆尔蒂的帮助。
$invoice_date = "11-05-2018";
$day  = 7;//in below statements used as day
$is_invoice = false;

$date = date("Y/m/d", strtotime($invoice_date));

if ($is_invoice) {
$dueDate = date('d/m/Y', strtotime($date. ' + '.$day.' days'));
} else {
$dueDate = date('Y-m-t', strtotime($date));
$dueDate = date('d/m/Y', strtotime($dueDate. ' + '.$day.' days'));
}

echo "Due date: ".$dueDate;