我正在尝试将用户定义的月份数量添加到之前添加的日期。 $ CustDate已经是以前形式的YYYY-MM-DD格式。
$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提供相同的值。
我在哪里搞砸了?谢谢!
答案 0 :(得分:2)
您将+ months
与$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;
答案 1 :(得分:2)
注意:
$d = strtotime('2016-03-02'); // March 2nd, 2016 -> 1456898400
echo date('Y-m-d', strtotime('+1 day', $d)); -> 2016-03-03
echo date('Y-m-d', strtotime('2010-01-02', $d)); -> 2010-01-02
strtotime()
的第二个参数为任何“相对”时间值设置时间基础,例如+1 day
或yesterday
。由于您传递的是绝对日期2016-08-04
,因此没有“相对”度量可以基于任何内容,并且您的绝对日期将全部用于转换。
如果要调整绝对日期,则必须执行类似
的操作echo date('Y-m-d', strtotime('2016-08-04 + 1 day')) -> 2016-08-05
e.g。将日期数学嵌入到您传入strtotime
的字符串中,而不是在第二个参数中。
答案 2 :(得分:1)
$scope.foo.someFN()