我有一个输入类型为date的表单。现在,我想从表单中获得选定的日期,添加30天并保存到我的MySQL数据库。下面是一个例子。
我想从这个——> 2014 06 -20
太这个——> 2014 07 -20(+ 30天)
这是我的HTML:<label for ="lb_Date">Select your Date </label>
<input type="date" class="form-control" id="DateInput" name="date"placeholder="" required>
这是我的PHP
$date = $_POST['date'];
$newDate = new DateTime('$date');
$newDate->modify('+30 day');
echo $date->format('YY-mm-dd');
echo
给了我正确的结果,但错误信息不允许在我的MySQL数据库中保存$newDate。
错误信息:
可捕获的致命错误:DateTime类的对象不能转换为字符串
怎么了?为什么我需要转换一些东西,输出正好适合MySQL。我不明白。
您正在做的是为datetime对象提供字符串字面量,而不是来自$_POST的变量值:
$newDate = new DateTime('$date');
我不知道是不是打错了,但是你应该改成这样:
$date = $_POST['date'];
$newDate = new DateTime($date); // remove those quotations
$newDate->modify('+30 day');
// should not be YY-mm-dd but Y-m-d
echo $newDate->format('Y-m-d');// 2014-07-20
// not echo $date->format('YY-mm-dd'); $date is not your datetime object
你的PHP代码应该像这样:
$date = $_POST['date'];
$newDate = new DateTime('$date');
$newDate->modify('+30 day');
echo $newDate->format('Y-m-d');
你正在调用一个字符串($_POST['date']
)的方法,而不是一个对象。
您的PHP部分应该如下所示:
$date = $_POST['date'];
$newDate = new DateTime($date);
$newDate->modify('+30 day');
echo $newDate->format('Y-m-d');