HTML / php表中的MySql datetime字段仅显示使用表单时的日期

HTML / php表中的MySql datetime字段仅显示使用表单时的日期

问题描述:

I have a datetime MySql field named down_stamp that I have populating an HTML table via php:

<? $sql_el = "SELECT * FROM events WHERE loc_id = '$lid'";
$result_el = mysql_query($sql_el);
while ($row_el = mysql_fetch_array($result_el)) {
?>
<tr>
  <td><?=$row_el['down_stamp']?></td>
</tr>
</form>
<? } ?>

This produces results in the format I'd like: 2013-09-15 08:30:00. However, I'd like to make this field modifiable, so if I just convert it into a form element like this:

<form name="fm_editevent" method="post">
<tr>
  <td><input name="down_stamp_ed" required="required" value=<? echo $row_el['down_stamp']; ?> type="text"></td>
  <td><input value="Update" type="submit" name="update_el"></td>     
</tr>
</form>
<? } ?>

Then the down_stamp field only displays the date: 2013-09-15. I don't think it's a width issue as there's plenty of room in the text box. I tried adding <td width=100> (twas a guess). I also tried to declare the time in php when expanding the variable, which just gave me an error and the date 1970-01-01 01:33:33

<td><input name="down_stamp_ed" required="required" value=<? echo date("Y-m-d H:i:s", $row_el['down_stamp']);?> ></td>

How can I get the full datetime field data to echo in this form text box?

You missed the quotation marks...

Use:

<td><input name="down_stamp_ed" required="required" value="<? echo $row_el['down_stamp']; ?>" type="text"></td>

(without the quotation marks the result would look like this:

<td><input name="down_stamp_ed" required="required" value=2013-09-15 01:33:33 type="text"></td>

and just because you're lucky your browser interprets "2013-09-15" as the value of the field ;-)

You need to wrap value in " :

<form name="fm_editevent" method="post">
<tr>
  <td><input name="down_stamp_ed" value="<? echo $row_el['down_stamp']; ?>" type="text" required></td>
  <td><input value="Update" type="submit" name="update_el"></td>     
</tr>
</form>
<? } ?>

You need quote the value attribute, e.g:

echo "< .... value=\"$date_from_db\">";

Without them, you're generating

... value=2014-10-21 15:16:00

which is parsed as an attribute "value" whose value is 2014-10-21, and an unknown/illegal attribute "15:16:00".