如何从html5 php转换日期格式

时间:2014-06-29 04:12:45

标签: php mysql date format

我有一个输入类型为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。我不明白。

3 个答案:

答案 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'])的方法,而不是对象。