0

我似乎无法将日期从我的表单插入到我的数据库中。请帮忙!

这是我的表格

echo '

<h1>Enter New Report</h1>
<form action="submitreport.php" method="post"
enctype="multipart/form-data">

 Date: <input type="text" name="Date" value='.$myDate.' /><br />
 Report:<br><TEXTAREA NAME=Report ROWS=4 COLS=40></TEXTAREA><br />
 <input type="submit" name="submit" value="Submit" />
 </form>

 ';
 ?> 

这是我为将其提交到数据库而编写的内容

$insertdate = trim($_POST['Date']);

$insertdate = mysql_real_escape_string($insertdate);
    $insertdate = date('m/d/Y', $insertdate);

echo $insertdate;


mysql_query("INSERT INTO `Reports`(`Date`, `Report`) VALUES ('$insertdate','$_POST[Report]')") or die("load1 -" .  mysql_error());


mysql_close();

echo "Thank You!" . " -" . "<a href='index.php' style='text-decoration:none;color:#ff0099;'> Return Home</a>";
?>
4

4 回答 4

3

我只是猜测,但您Date在数据库中的字段是 typedatedatetime. 这些格式是YYYY-mm-dd. 尝试将您的代码更改为:

$insertdate = date('Y-m-d', strtotime($_POST['Date']));

此外,您没有在格式化之前将日期转换为时间戳。我也在strtotime()这里添加了数据。

于 2012-10-04T14:10:18.160 回答
2

PHPdate需要一个时间戳作为第二个参数。如果$insertdate不是一个,它将无法正常工作。您可以使用 PHP 的strtotime()函数从字符串中获取时间戳。

此外,您的 sql 语句中的值必须根据您的 mysql 数据库中使用的类型进行格式化,例如datedatetimetimestamp

于 2012-10-04T14:09:42.387 回答
0

您可以使用 NOW() MySQL 函数将当前日期/时间插入数据库。您只需要使用 Date、DateTime 或 Timestamp 字段类型即可。

于 2012-10-04T14:09:45.910 回答
0

我知道了 $insertdate = trim($_POST['Date']);

$insertdate = mysql_real_escape_string($insertdate);
$insertdate = strtotime($insertdate);

    $insertdate = date('Y-m-d', $insertdate);

strtotime 修复了它,但我不得不将日期格式重新排列为 Ymd

感谢您的帮助

于 2012-10-04T14:11:55.987 回答