Pergunta

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?

Foi útil?

Solução

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

Outras dicas

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top