将带有datetime值的html输入发布到mysql数据库

l7wslrjt  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(299)

我正在寻找一种解决方案,将用户输入从一个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附近的“”有关,我尝试过它,但没有遇到相同的错误。
提前谢谢!

nr9pn0ug

nr9pn0ug1#

问题是datetime local在中间加了一个t,即2018-11-19t10:52:23。必须更改格式才能删除t。或许可以试试这个:

$date = strftime('%Y-%m-%d %H:%M:%S', strtotime(real_escape_string($_POST['myDate'])));

相关问题