Php 添加到给定日期的用户定义月份
我正在尝试将用户定义的月份数添加到先前添加的日期$CustDate已为上一表单的YYYY-MM-DD格式Php 添加到给定日期的用户定义月份,php,date,strtotime,Php,Date,Strtotime,我正在尝试将用户定义的月份数添加到先前添加的日期$CustDate已为上一表单的YYYY-MM-DD格式 $CustDate=$_POST['formYear'] . "-" . $_POST['formMonth'] . "-" . $_POST['formDay']; $months=$_POST['formMonthsAdded']; $d=strtotime("+" . $months . " Months"); $CustAddedDate=date("Y-m-d", strtot
$CustDate=$_POST['formYear'] . "-" . $_POST['formMonth'] . "-" . $_POST['formDay'];
$months=$_POST['formMonthsAdded'];
$d=strtotime("+" . $months . " Months");
$CustAddedDate=date("Y-m-d", strtotime($CustDate, $d));
如果我将日期输入为:2016-08-04作为$CustDate,它将为$CustAddedDate提供相同的值
我在哪里搞砸了?谢谢 您将
+月份
与$CustDate
一起添加。提供$Cusdate
作为加法中的第二个参数
$CustAddedDate = date('Y-m-d', strtotime("+" . $months . " Months", strtotime($CustDate)));
// ^ add this with the addition
或DateTime
变量:
$date = new DateTime($CustDate);
$date->modify('+ ' . $months . ' Month');
$CustAddedDate = $date->format('Y-m-d');
echo $CustAddedDate;
将
+月份
与$CustDate
一起添加。提供$Cusdate
作为加法中的第二个参数
$CustAddedDate = date('Y-m-d', strtotime("+" . $months . " Months", strtotime($CustDate)));
// ^ add this with the addition
或DateTime
变量:
$date = new DateTime($CustDate);
$date->modify('+ ' . $months . ' Month');
$CustAddedDate = $date->format('Y-m-d');
echo $CustAddedDate;
注:
strotime()
的第二个参数为任何“相对”时间值设置时间基础,如+1天
或昨天
。由于您传递的是一个绝对日期,2016-08-04
,因此没有任何“相对”度量作为基础,您的绝对日期将全部用于转换
如果你想调整绝对日期,你必须做如下的事情
echo date('Y-m-d', strtotime('2016-08-04 + 1 day')) -> 2016-08-05
e、 g.将日期数学嵌入要传递到的字符串中,而不是第二个参数中。注意:
strotime()
的第二个参数为任何“相对”时间值设置时间基础,如+1天
或昨天
。由于您传递的是一个绝对日期,2016-08-04
,因此没有任何“相对”度量作为基础,您的绝对日期将全部用于转换
如果你想调整绝对日期,你必须做如下的事情
echo date('Y-m-d', strtotime('2016-08-04 + 1 day')) -> 2016-08-05
e、 g.将日期数学嵌入要传递到
strotime
的字符串中,而不是第二个参数中。$d
中没有用于任何内容,因为$CustDate
不包含任何“相对”值。都是绝对的年/月/日。strotime()的第二个参数为strotime(“+1天”、$some\u point\u in\u time)
中的$d
设置基本时间,因为您的$CustDate
不包含任何“相对”值。都是绝对的年/月/日。strotime()的第二个参数为strotime(“+1天”、$some\u point\u in\u time)