如何将<input type =“time”/>中输入的值插入数据库?

时间:2016-03-23 06:27:24

标签: php mysql

我有一个包含的htmlcode。我输入的值类似于&#34; 01:00 AM&#34;在输入字段中。当我将输入的时间值插入数据库表时,只有&#34; 01:00&#34;正在插入,&#34; AM&#34;没有插入数据库。我使用了数据类型&#34; varchar(20)&#34;对于数据库表中的时间字段。任何人都可以告诉如何将AM和PM的全部时间插入数据库?

       html:
              <form action="projectinser.php" method="post">
                   <div id="dynamicInput" style="display:inline" >
                <input type="text" name="itemname"  pattern="[a-zA-Z ]+" placeholder="Item" value="" size="35">
                    </div>
                    <div id="dynamicInput1" style="display:inline">
                      <input type="text" name="sdate" id="datepicker" placeholder="Enter Start Date" value="" size="34">
                     </div>
                    <div id="dynamicInput" style="display:inline">
                 <input type="time" name="stime" placeholder="Enter Time"  
             value="" size="34">
              </div>
         <div id="dynamicInput2" style="display:inline">
             <input type="text" name="details"  pattern="[a-zA-Z ]+" placeholder="Enter Details" value="" size="34">
             </div>
        </form>

           projectinser.php
            <?php
           $itemname = $_POST['itemname'];
            $sdate    = $_POST['sdate']; 
            $details  = $_POST['details'];
            $stime = $_POST['stime'];

           $sql= "INSERT INTO projectdetail (projectid, item, remainderdate, time, details) VALUES ('$cid', '$itemname', '$sdate', '$stime', '$details')";
            mysqli_query($con,$sql);
           ?>

2 个答案:

答案 0 :(得分:0)

你可以做两件事。您可以将列更改为实际的DATETIME或TIME字段。这样它就会将时间存储为实时格式。

或者你可以在插入时执行此操作。

$input = $_POST['input'];
$the_time = date('h:i A', strtotime($input));

我在这里提供了一个示例,其中有3个示例,时间戳被转换为您想要的格式。

Example  但是,我建议将它们存储为实际时间戳,这样你可以在将来操作它们,如果需要的话

更新:(包括您的代码)

 $stime = $_POST['stime'];
 $the_time = date('h:i A', strtotime($stime));

 $sql= "INSERT INTO projectdetail (projectid, item, remainderdate, time, details) VALUES ('$cid', '$itemname', '$sdate', '$the_time', '$details')";
        mysqli_query($con,$sql);

答案 1 :(得分:0)

将类型更改为类型=&#34;文本&#34; 应该修复此问题,因为您正在为表使用varchar。

<input type="text" name="stime" placeholder="Enter Time"