【问题标题】:datetime-local value doesn't appear on input tagdatetime-local 值未出现在输入标签上
【发布时间】:2016-11-01 11:17:57
【问题描述】:

我正在制作一个 php 页面,我可以在其中编辑给定的结束日期和时间。 单击编辑按钮后,datetime-local 之前的值不会出现在 datetime 框中。

之前的值为2016-06-17 19:07:00

它只显示为这样mm/dd/yyyy --:--:--

这个不显示之前的值:

<input type="datetime-local" name="c_datetime" value=<?php echo $row[5] ?> />

但是当我这样做时,它会正确显示日期和时间。

<?php echo $row[5] ?>

如何让它显示之前的值?

提前致谢!

【问题讨论】:

  • 数据库中的日期是如何存储的?如果格式错误,它将无法工作。如果是这种情况,那么你应该这样做 $date = new DateTime($row[5]) 然后 echo $date-&gt;format(d/m/Y H:i);
  • 创建数据库时:c_datetime datetime NOT NULL default '0000-00-00 00:00:00', 存储时&lt;input type="datetime-local" name="c_datetime" /&gt;

标签: php mysql datetime input types


【解决方案1】:

您似乎在 php 代码周围缺少一些引号:

<input type="datetime-local" name="c_datetime" value="<?= str_replace(" ", "T", $row[5]) ?>" />

【讨论】:

  • 另一行在没有括号的情况下工作,因为我在 php 上输入了它。我也尝试过放括号,但还是一样。
  • 对不起,我的意思是你的 HTML 中的引号包含任何由 php 代码回显的内容。按照您目前的情况,您的 HTML 将如下所示 ,但该日期戳需要在其周围加上引号。
  • 我试图这样做&lt;input type="datetime-local" name="c_datetime" value="2016-06-17 19:07:00" /&gt;,但它仍然没有出现,但是当我这样做时&lt;input type="datetime-local" name="c_datetime" value=2016-06-17T19:07:00 /&gt;它已经出现在盒子上。它在日期和时间之间需要一个字母“T”。我不知道我该怎么说?
  • 看起来您可以使用 str_replace 将空格替换为 T... value=""
  • 没问题。使用 date() 函数来确保输出字符串的正确格式可能在技术上更正确。如果不能保证 $row[5] 采用您指定的格式,则尤其如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 2017-04-12
  • 1970-01-01
相关资源
最近更新 更多