crmepham
crmepham

Reputation: 4740

time not being recorded in mysql database

I am attempting to record a time (hours:mins:secs) chosen by the user via select form. The other data posted via the form is entered correctly in the database but the "start time" is being recorded as 0000-00-00 00:00:00.

User selects the start time here:

<p >Start time (24hrs):
<span class="right">
Hour:
<select name="event-start-time-hours" class="event-time">
    <option value="01">01</option>
    <option value="02">02</option>
    <option value="03">03</option>
    <option value="04">04</option>
    <option value="05">05</option>
    <option value="06">06</option>
    <option value="07">07</option>
    <option value="08" selected>08</option>
    <option value="09">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
</select>
    Min:
<select name="event-start-time-mins" class="event-time">
    <option value="00" selected >00</option>
    <option value="05">05</option>
    <option value="10">10</option>
    <option value="15">15</option>
    <option value="20">20</option>
    <option value="25">25</option>
    <option value="30">30</option>
    <option value="35">35</option>
    <option value="40">40</option>
    <option value="45">45</option>
    <option value="50">50</option>
    <option value="55">55</option>
</select>

and is recorded via:

$event = new event($_POST, $dbh);
// Record Event to database
$event->setEvent();

I format the start time in the setevent() method like so:

// format start time
$stime = mktime($_POST['event-start-time-hours'], $_POST['event-start-time-mins'], 0);
$eventStartTime = date("H:i:s", $stime);

and bind the variable like os:

$stmt->bindParam(11, $eventStartTime);

Which correlates to the correct column in the table.

So why is it not recorded in the datetime field?

Upvotes: 0

Views: 204

Answers (2)

Mubin
Mubin

Reputation: 4425

Field type in database is set to DateTime use Time instead. It will work.

Upvotes: 1

user2801966
user2801966

Reputation: 468

set the datetime field to timefield only and it'll work

When the tring to save data in a field which accepts data in this format 0000-00-00 00:00:00 which means yyyy-mm-dd hh:mm:ss if you want to save only time data then change the field column type to time.

Upvotes: 1

Related Questions