简体   繁体   English

时间没有记录在mysql数据库中

[英]time not being recorded in mysql database

I am attempting to record a time (hours:mins:secs) chosen by the user via select form. 我试图通过select表单记录用户select的时间(小时:分钟:秒)。 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 . 通过表单发布的其他数据在数据库中正确输入,但“开始时间”记录为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: 我在setevent()方法中格式化开始时间,如下所示:

// 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: 并绑定变量,如os:

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

Which correlates to the correct column in the table. 这与表中的正确列相关。

So why is it not recorded in the datetime field? 那为什么它没有记录在datetime字段中?

set the datetime field to timefield only and it'll work 将datetime字段仅设置为timefield,它将起作用

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. 如果你想只保存时间数据然后更改字段列,那么在接受数据的字段中保存数据时,00:00:00这意味着yyyy-mm-dd hh:mm:ss输入时间。

Field type in database is set to DateTime use Time instead. 数据库中的字段类型设置为DateTime使用Time It will work. 它会工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM