【问题标题】:How to place MySql DATETIME results into HTML input with type datetime-local如何将 MySql DATETIME 结果放入类型为 datetime-local 的 HTML 输入中
【发布时间】:2015-10-08 15:13:57
【问题描述】:

我在数据库中使用<input type="datetime-local"> 存储了日期,现在我想取回<input type="datetime-local"> 中的日期以进行更新。

我在做

$query="select * from exam_schedule where subject_name='$name' AND class_id='$schedule_id' limit 1";
$result= mysqli_query($connection,$query);
while ($read_all_data = mysqli_fetch_assoc($result))
{ 

echo "date comming from datebase::".$date=$read_all_data['date_and_time']."<br>";
echo "duration comming from datebase::".$duration=$read_all_data['duration'];

$duration=$read_all_data['duration'];
echo "<form method='post' action='edit_schedule.php'>";
echo "<input type='hidden' name='id' value='$id'>";
echo  "<tr><th><input type='datetime-local' name='date' value='$date'> </th>";
echo  "<th><input type='datetime-local' name='duration' value='$duration'> </th>";
echo <input type='submit' name='update' value='update'> </form></th></tr>";
}

当我回显 $date 和 $duration 时,它会显示值,但是当我输入 value="$date" 时,它不会显示数据库中的日期。

【问题讨论】:

  • 提供你的 SQL 表的结构。
  • echo $date 看到了什么?
  • “更新”应该代表什么? english.stackexchange.com/questions/68169/…
  • id type =INT date_and_time type=DATETIME duration type =DATETIME
  • 您在echo "&lt;th&gt;&lt;input type='datetime-local' name='duration' value='$duration'&gt; &lt;/th&gt;"; &lt;input type='submit' name='update' value='update'&gt; &lt;/form&gt;&lt;/th&gt;&lt;/tr&gt;"; 遇到语法错误,错误报告会告诉您这一点。缺少echo "

标签: php mysql date datetime


【解决方案1】:

如果你需要在 PHP 而不是 MySQL 中转换时间:

  1. 将 MySQL 日期时间字符串转换为 PHP 时间戳
  2. 将 PHP 日期格式掩码应用于 PHP 时间戳,其中格式与 HTML5 日期时间本地格式匹配

PHP 代码示例:

const HTML_DATETIME_LOCAL = 'Y-m-d\TH:i'; //escape the literal T so it is not expanded to a timezone code
$php_timestamp = strtotime($mysql_date_string);
$html_datetime_string = date(HTML_DATETIME_LOCAL, $php_timestamp);
echo "<input type='datetime-local' name='date' value='{$html_datetime_string}'>";

【讨论】:

  • 这对我不起作用:它没有显示在输入中。
  • 已更新。谢谢。修复了字符串中变量的 $。
【解决方案2】:

问题在于datetime-local 输入类型期望日期采用以下格式:yyyy-mm-ddThh:mm,但您为其提供了数据库创建的默认DATETIME 格式yyyy-mm-dd hh:mm:ss

Demo

要更改它,您需要将 SQL 查询更改为:

SELECT *, DATE_FORMAT(date_and_time, '%Y-%m-%dT%H:%i') AS custom_date 
FROM exam_schedule 
WHERE subject_name='$name' 
AND class_id='$schedule_id' 
LMIT 1

所以现在在您的结果中,您可以使用 custom_date 预填充您的输入。

<input type='datetime-local' name='date' value='<?php echo $row['custom_date'] ?>' >

【讨论】:

    【解决方案3】:

    你可以用这个:

    date_format($date, 'Y-m-d H:i:s');
    

    【讨论】:

    • 他在哪里可以使用此代码,他们为什么要使用此代码,它将如何解决问题?
    • 它将日期格式化为 2013-03-15 00:00:00。无论你想要这样的日期格式,你都可以使用。
    【解决方案4】:

    使用这个

     <?php  echo date('Y-m-d\TH:i:s', strtotime($exampledate));?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2018-08-06
      • 2018-03-11
      • 2018-01-14
      相关资源
      最近更新 更多