首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不返回输入的日期。

不返回输入的日期。
EN

Stack Overflow用户
提问于 2019-02-26 11:29:44
回答 3查看 494关注 0票数 1

我总是想在input中显示前三分之一,为此,我是这样做的:

代码语言:javascript
复制
$dia = new DateTime();
$dia->modify( 'previous tuesday' );
$terca = date($dia->format('d-m-Y'));

然后,我想在$tercavalue中显示变量input type date,但只有当它是datetime时,它才会显示。

代码语言:javascript
复制
<td style="float:center"> <input type="date" name= "data"  value="<?php echo $terca?>"></td>

每当我运行该页面时,都会收到以下警告:

指定的值"19-02-2019“不符合所需的格式”yyyy“。

我试着这样做,date ('yyyy-MM-dd', strtotime ($terca));,但我仍然有同样的问题

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-26 11:35:01

错误消息立即告诉您问题:

指定的值"19-02-2019“不符合所需格式”yyyy“。

只需更改格式(将Y放在前面):

代码语言:javascript
复制
$terca = date($dia->format('Y-m-d'));

应该能解决你的问题。

票数 2
EN

Stack Overflow用户

发布于 2019-02-26 11:40:50

将格式(‘d’)改为格式(‘Y’)

代码语言:javascript
复制
$dia = new DateTime();
$dia->modify( 'previous tuesday' );
$terca = date($dia->format('Y-m-d'));

然后试着:

代码语言:javascript
复制
<input type="date" name= "data"  value="<?php echo $terca?>">
票数 3
EN

Stack Overflow用户

发布于 2019-02-26 11:41:58

错误消息告诉您,您已输出到输入框的value中的字符串无效。

记录在案一样,“日期”输入的value必须始终以yyyy-mm-dd格式指定。这与显示给用户的格式(根据用户的浏览器区域设置选择的格式)无关。

您可以使用正确的PHP日期格式字符串来修复它,如下所示:

PHP:

代码语言:javascript
复制
$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是明确的,因此总是用来表达实际价值。然后,用户可以以他们更熟悉的文化格式向用户展示。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54884532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档