首页 > 解决方案 > html & php 表单到数据库输入 0000-00-00 作为日期而不是选择的 html5 datepicker 日期

问题描述

我有一个 html 表单和一个连接 php 文件,以便将信息从网页插入数据库。我的 html5 在日期之下,它会自动生成一个日期选择器。已调整 php 以正确格式化日期,但是,当它插入数据库时​​,它会插入 0000-00-00 而不是 html 日期选择器上选择的日期。

我使用了来自这个网站和谷歌的许多不同的代码片段,试图让它工作。我未能让它们中的任何一个发挥作用。以下代码是我最接近的。我真的更喜欢 html5 日期选择器,因为使用此表单的人需要始终选择星期一日期。请注意,日期字段是多字段表单的一部分,除描述外,所有字段均有效。

HTML 表格

<form method="POST" action="connect.php">

Week Beginning : <input type="date" name="WeekBeginning"><br>
Submit : <input type="submit" value="Submit">
</form>

</body>
</html>

php

$wkBeg = filter_input (INPUT_POST, 'WeekBeginning');

else{
$wkBeg = strtotime($_POST["WeekBeginning"]);
$wkBeg = date('y-m-d H:i:s', $date);


$sql = "INSERT INTO `op_pont_totalactualhours`(WeekBeginning) VALUES ('$date')";

我希望如果从日期选择器日历中选择 2019 年 1 月 7 日,它将作为 2019-01-07 输入到数据库中,但它会显示为 0000-00-00。我可以使用一些指导,因为我无法从其他类似问题中获取示例并使它们对我有用。谢谢你。

标签: phphtmlmysql

解决方案


您当前的代码未使用正确的新设置变量。

$wkBeg = strtotime($_POST["WeekBeginning"]);
$wkBeg = date('y-m-d H:i:s', $date);


$sql = "INSERT INTO `op_pont_totalactualhours`(WeekBeginning) VALUES ('$date')";
  • 第 1 行:您设置了 $wkBeg
  • 第 2 行:现在您在 date() 函数中使用 $date,该函数未设置。
  • 第 3 行:您尝试插入未设置的 $date

我会建议:

$wkBeg = strtotime($_POST["WeekBeginning"]);
$wkBeg = date('y-m-d H:i:s', $wkBeg);


$sql = "INSERT INTO `op_pont_totalactualhours`(WeekBeginning) VALUES ('$wkBeg')";


推荐阅读