LD Tuan
LD Tuan

Reputation: 17

HTML datetime to PHP to MySQL

I am doing a to do list webpage using HTML, PHP and MySQL but I cannot submit the datetime to the database:

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>Sign Controller</title>
  <link rel="stylesheet" href="/css/style.css" />
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script src="update.js"></script>
</head>
<body>
  <!--MAIN CONTENT HERE-->
  <div class="container">
    <form id="controller" action="php/update.php" method="post">
      <h3>Sign display controller</h3>
      <h4>Event Controller</h4>
      <fieldset>
        <input placeholder="sign ID" type="text" name="sign_Name" tabindex="1" required autofocus/>
      </fieldset>
      <h5>Event Start</h5>
      <fieldset>
        <input type="datetime-local" name="time_eventStart" tabindex="2" required/>
      </fieldset>
      <h5>Event End</h5>
      <fieldset>
        <input type="datetime-local" name="time_eventEnd" tabindex="3" required/>
      </fieldset>
      <fieldset>
        <input placeholder="Event source" type="text" name="event_Source" tabindex="4"/>
      </fieldset>
      <fieldset>
        <input placeholder="Idle source" type="text" name="idle_Source" tabindex="5"/>
      </fieldset>
      <button type="submit">Update</button>
    </form>
  </div>
</body>
</html>

PHP:

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "projectSS";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sign_Name = $_POST["sign_Name"];
$event_Source = $_POST["event_Source"];
$idle_Source = $_POST["idle_Source"];
$time_eventStart = $_POST["time_eventStart"];
$time_eventEnd = $_POST["time_eventEnd"];

$sql = "INSERT INTO display (sign_Name,event_timeStart,event_timeEnd,event_Source,idle_Source)
VALUES ('$sign_Name','$time_eventStart','$time_eventEnd','$event_Source','$idle_Source')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

I'm having a hard time to deal with the datetime-local type and I am new to programming so.

Upvotes: 0

Views: 106

Answers (4)

Jaydeep Mor
Jaydeep Mor

Reputation: 1703

datetime-local it considered 24 hour format so if you select 07/12/2017 12:00 AM it posted 2017-07-12T00:00.

In insert query just put posted value into your query. e.g.

$_POST['time_eventStart'].

Also if you print date-time to your input echo posted value. e.g.

<input type="datetime-local" name="time_eventStart" value="<?php echo $_POST['time_eventStart']; ?>" tabindex="2" required="" />

Upvotes: 0

Avinash Pandey
Avinash Pandey

Reputation: 1

Try something like this

$date = '2014-06-06 12:24:48';
echo date('d-m-Y (H:i:s)', strtotime($date));

and then save this.

Upvotes: 0

Mahipal Patel
Mahipal Patel

Reputation: 543

just change date time format as per mysql standard

if your column datatype is date used below

$time_eventStart = date('Y-m-d',strtotime($_POST["time_eventStart"]));
$time_eventEnd = date('Y-m-d',strtotime($_POST["time_eventEnd"]));

if your column datatype is datetime used below

$time_eventStart = date('Y-m-d H:i:s',strtotime($_POST["time_eventStart"]));
$time_eventEnd = date('Y-m-d H:i:s',strtotime($_POST["time_eventEnd"]));

Upvotes: 1

Code Lღver
Code Lღver

Reputation: 15593

Change your query. Your query is not executing.

try this:

$sql = "INSERT INTO display (sign_Name,event_timeStart,event_timeEnd,event_Source,idle_Source)
VALUES ('".$sign_Name."','".$time_eventStart."','".$time_eventEnd."','".$event_Source."','".$idle_Source."')";

Upvotes: 0

Related Questions