通过MYSQL表中的echo正确格式化日期时间本地表单输入

时间:2017-12-08 08:04:27

标签: php mysql

我试图将arrivalDateTimeDest的值回显到表单中,以便用户可以编辑此值。我试图通过几种方式实现这一目标,然而,回声的价值总是等于mm / dd / yyyy - : - - 。我究竟做错了什么?我的尝试列在下面。

<input type='datetime-local' id="arrivalDateTimeDest" name='arrivalDateTimeDest' value="<?php echo date_format($row['arrivalDateTimeDest'],'Y/m/d H:i:s')?>">

<input type='datetime-local' id="arrivalDateTimeDest" name='arrivalDateTimeDest' value="<?php echo date('Y/m/d H:i:s', $row['arrivalDateTimeDest'])?>">

<input type='datetime-local' id="arrivalDateTimeDest" name='arrivalDateTimeDest' value="<?php echo date('c', $row['arrivalDateTimeDest'])?>">

鉴于最近对这篇文章的回答,我已经确定了这个问题,但我还是无法解决。当输入type = text时,我没有回显该值的问题,但是,当输入类型设置为datetime-local时,我无法执行此操作。

3 个答案:

答案 0 :(得分:1)

在更改日期格式之前使用strotitime。检查以下内容:

<?php $date = "2011-12-05 10:13 AM";?>
<input type='datetime-local' id="arrivalDateTimeDest" name='arrivalDateTimeDest' value="<?php echo date('Y-m-d\TH:i', strtotime($date)); ?>">

答案 1 :(得分:1)

是这是一项非常简单的任务,

  1. 将时间从数据库转换为时间戳。

    $timestamp = strtotime($row['arrivalDateTimeDest']);

  2. 然后使用date()函数格式化此日期..以您想要的格式

    echo date("Y-m-d", $timestamp);

  3. 在想要回复日期的地方使用这个... :) :)

答案 2 :(得分:0)

strtotime无法正确处理mm/dd/yyyy,请尝试此操作

echo DateTime::createFromFormat("m/d/Y H:i s", $row['arrivalDateTimeDest'])->format("y-m-d");

所以在你的代码中它应该是这样的:

<input type='datetime-local' id="arrivalDateTimeDest" name='arrivalDateTimeDest' value="<?php echo DateTime::createFromFormat("m/d/Y H:i:s", $row['arrivalDateTimeDest'])->format("y-m-d")?>">

确保此部分:"m/d/Y H:i s"符合您从$row['arrivalDateTimeDest']

获得的格式