Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP变量未填充到表单上的HTML datetime本地字段中_Php_Mysql_Html - Fatal编程技术网

PHP变量未填充到表单上的HTML datetime本地字段中

PHP变量未填充到表单上的HTML datetime本地字段中,php,mysql,html,Php,Mysql,Html,我试图用一个PHP$\u POST变量填充一个HTML datetime本地字段。当我回显变量时,数据显示正确,但没有填充到datetime本地输入字段中。我确信这是语法错误,但看不出问题所在。如果有人能给我指出正确的方向,我将不胜感激 HTML: 我还尝试了以下不起作用的方法: 这给了我一个错误:遇到了格式不正确的数值 这没有给我一个错误,但也没有填写字段 当我回显$\u POST['arriveDate']时我得到的格式是2019-01-31T19:30 我希望这只是一些愚蠢的语法问

我试图用一个PHP$\u POST变量填充一个HTML datetime本地字段。当我回显变量时,数据显示正确,但没有填充到datetime本地输入字段中。我确信这是语法错误,但看不出问题所在。如果有人能给我指出正确的方向,我将不胜感激

HTML:

我还尝试了以下不起作用的方法:

  • 这给了我一个错误:遇到了格式不正确的数值
  • 这没有给我一个错误,但也没有填写字段
当我回显
$\u POST['arriveDate']时我得到的格式是2019-01-31T19:30
我希望这只是一些愚蠢的语法问题。请让我知道你的想法。感谢

根据(如果支持的话)接受格式为yyyy-MM-ddThh:MM的值
这不是ISO-8601格式,因此
date('c')
不起作用。尝试以下几点:

<?php
$arriveDate = $_POST['arriveDate'];
$arriveDate = date("Y-m-d\TH:i", strtotime($arriveDate));
?>

<form method="POST">
<input type="datetime-local" name="arriveDate" value="<?=$arriveDate; ?>">
<input type="submit">
</form>


这并不理想,但这些日期格式有点复杂。就像你说的那样

 2019-01-31T19:30:00+01:00 
从回波中,如果没有时区值,它将自动正确填充输入。你可以删除时区

 $arriveDate = date("c", strtotime($arriveDate));
 list($Date)=explode('+', $arriveDate);
 $arriveDate = $Date;
 <input type="datetime-local" name="arriveDate" id="arriveDate" value="<?= $arriveDate ?>">
$arriveDate=date(“c”,strotime($arriveDate));
列表($Date)=分解(“+”,$arriveDate);
$arriveDate=$Date;

你调试过你的变量吗?您传入和接收的值是什么?请尝试以下格式:
Y-m-d\TH:i
Yes
echo$arriveDate=date(“c”,strotime($arriveDate))告诉我2019-01-31T19:30:00+01:00我试过
$arriveDate=date('Y-m-d\TH:i',$arriveDate)
我收到了错误通知:遇到了格式不正确的数值。您需要将字符串传递到
strotime
中,然后结果将进入
date()
好的,我已经尝试过了:
echo$arriveDate=$\u POST['arriveDate'];回声“
”;echo$arriveDate=date(“Y-m-d\TH:i”,strotime($arriveDate))我得到:2019-01-31T19:30和2019-01-31T19:30,但字段没有填写完毕,您需要向我们展示更多代码,可能还有其他问题。我上面的例子行得通。好吧,下面是Joao Nunes的解决方案。但我真的认为你的答案也应该有效。我不确定代码的其他部分是什么。好吧,这很有效!谢谢:)。当你说它不理想时…有什么问题吗?另外,我想保留$arriveDate变量而不是$Date<代码>列表($arriveDate)=分解(“+”,$arriveDate)不工作。关于正确的方法有什么建议吗?没有问题,只是有点难看,我想,只是在之前或之后切换变量名,不能发布代码,因为我在mobilesorry上-我被难住了。我做了以下操作:
list($Date)=分解(“+”,$arriveDate);echo$arriveDate=$Date;到达现场日期您确定您的代码与您的注释一致吗?对我来说似乎是正确的。我再次编辑了what should work,这和你写的差不多,虽然我现在不能为你测试它,但我们已经做了困难的部分,重新映射变量应该不会太麻烦
$arriveDate = $_POST['arriveDate'];
$arriveDate = strtotime($arriveDate);
<?php
$arriveDate = $_POST['arriveDate'];
$arriveDate = date("Y-m-d\TH:i", strtotime($arriveDate));
?>

<form method="POST">
<input type="datetime-local" name="arriveDate" value="<?=$arriveDate; ?>">
<input type="submit">
</form>
 2019-01-31T19:30:00+01:00 
 $arriveDate = date("c", strtotime($arriveDate));
 list($Date)=explode('+', $arriveDate);
 $arriveDate = $Date;
 <input type="datetime-local" name="arriveDate" id="arriveDate" value="<?= $arriveDate ?>">