我有一个输入类型为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。我不明白。
答案 0 :(得分:1)
您正在做的是使用字符串文字提供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
答案 1 :(得分:0)
您的PHP部分应如下所示..
$date = $_POST['date'];
$newDate = new DateTime($date);
$newDate->modify('+30 day');
echo $newDate->format('Y-m-d');
答案 2 :(得分:0)
您的PHP代码应该是这样的:
$date = $_POST['date'];
$newDate = new DateTime('$date');
$newDate->modify('+30 day');
echo $newDate->format('Y-m-d');
您正在调用字符串($_POST['date']
)的方法,而不是对象。