我正在寻找一种解决方案,将用户输入从一个html输入集捕获到一个mysql数据库中,该数据库的表字段设置为datetime。每当我提交表单时,都会生成一个id并保存日期,但时间不是。例如:2018-11-20 00:00:00。
我的html:
<form class="" action="/index.php" method="post">
<input type="datetime-local" name="myDate" id="myDate"><br /><br />
<button id="submit" value="submit">Submit</button><br /><br />
</form>
我的php:
// Check Our Connection
if ( $mysqli->connect_error ) {
die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
}
// Insert Our Data
$sql = "INSERT INTO test_one ( mydate ) VALUES ( '{$mysqli->real_escape_string($_POST['myDate'])}' )";
$insert = $mysqli->query($sql);
// Print Response from MySQL
if ( $insert ) {
echo "Success! Row ID: {$mysqli->insert_id}";
} else {
die("Error: {$mysqli->errno} : {$mysqli->error}");
}
// Close Connection
$mysqli->close();
我从youtube上的一个教程中得到了代码,目前为止它还在运行。我只想得到他们选择的时间。
更新:时间正在节省,但似乎是在军事时间。例如:输入=2018年11月22日下午5:00;输出=2018-11-22 17:00:00
在第一条评论后更新:这会将我指向失败的http请求-
// Check Our Connection
if ( $mysqli->connect_error ) {
die( 'Connect Error: ' . $mysqli->connect_errno . ': ' . $mysqli->connect_error );
}
// Insert Our Data
$date = strftime('%Y-%m-%d %H:%M:%S', strtotime(real_escape_string($_POST['myDate'])));
$sql = "INSERT INTO test_one ( mydate ) VALUES ( '{$mysqli->real_escape_string($_POST['$date'])}' )";
$insert = $mysqli->query($sql);
// Print Response from MySQL
if ( $insert ) {
echo "Success! Row ID: {$mysqli->insert_id}";
} else {
die("Error: {$mysqli->errno} : {$mysqli->error}");
}
// Close Connection
$mysqli->close();
如果它与$date附近的“”有关,我尝试过它,但没有遇到相同的错误。
提前谢谢!
1条答案
按热度按时间nr9pn0ug1#
问题是datetime local在中间加了一个t,即2018-11-19t10:52:23。必须更改格式才能删除t。或许可以试试这个: