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?

有帮助吗?

解决方案

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

其他提示

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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top