我总是想在input中显示前三分之一,为此,我是这样做的:
$dia = new DateTime();
$dia->modify( 'previous tuesday' );
$terca = date($dia->format('d-m-Y'));然后,我想在$terca的value中显示变量input type date,但只有当它是datetime时,它才会显示。
<td style="float:center"> <input type="date" name= "data" value="<?php echo $terca?>"></td>每当我运行该页面时,都会收到以下警告:
指定的值"19-02-2019“不符合所需的格式”yyyy“。
我试着这样做,date ('yyyy-MM-dd', strtotime ($terca));,但我仍然有同样的问题
发布于 2019-02-26 11:35:01
错误消息立即告诉您问题:
指定的值"19-02-2019“不符合所需格式”yyyy“。
只需更改格式(将Y放在前面):
$terca = date($dia->format('Y-m-d'));应该能解决你的问题。
发布于 2019-02-26 11:40:50
将格式(‘d’)改为格式(‘Y’)
$dia = new DateTime();
$dia->modify( 'previous tuesday' );
$terca = date($dia->format('Y-m-d'));然后试着:
<input type="date" name= "data" value="<?php echo $terca?>">发布于 2019-02-26 11:41:58
错误消息告诉您,您已输出到输入框的value中的字符串无效。
与记录在案一样,“日期”输入的value必须始终以yyyy-mm-dd格式指定。这与显示给用户的格式(根据用户的浏览器区域设置选择的格式)无关。
您可以使用正确的PHP日期格式字符串来修复它,如下所示:
PHP:
$dia = new DateTime();
$dia->modify( 'previous tuesday' );
$terca = $dia->format('Y-m-d');
<input type="date" name="data" value="<?php echo $terca?>">PHP的可运行演示:http://sandbox.onlinephpfunctions.com/code/7045183fd11b5a2e29d5d9fa80f0910cad18d671
使用PHP:https://jsfiddle.net/0mqokve6/输出的字符串运行的HTML演示
由于$dia已经是一个DateTime对象,而format()已经输出了一个字符串,所以将它封装在date()函数中是多余的。
日期控制不允许其他格式的字符串的原因总是有可能出现歧义。例如,dd- many在许多情况下是不可能与many区分的,例如01-03-2019只是一个例子。在这种情况下,浏览器不可能知道预定日期是什么。yyyy-mm-dd是明确的,因此总是用来表达实际价值。然后,用户可以以他们更熟悉的文化格式向用户展示。
https://stackoverflow.com/questions/54884532
复制相似问题