提问人:user2741620 提问时间:1/3/2023 更新时间:1/4/2023 访问量:335
如何使$date显示在输入 type=“date” 上
How to make $date show on input type="date"
问:
我数据库中的所有“日期”都采用以下格式:“d-m-Y”(例如 09-03-2022)
我想要一个输入类型=日期的字段,以便用户可以修改日期。
我使用以下代码来拉取数据:
$date = "<input type=\"date\" id=\"date\" size= \"50%;\" name=\"date\" value=\"$res[date]\" >";
...
<thead> <th>Date </th> <td>$date </td> </thead>
但是我的输入框显示 dd/mm/yyyy 而不是实际日期。
我需要做什么格式才能使我的实际日期显示在输入框上?
我尝试了以下方法,但没有用:
$date = "<input type=\"date\" id=\"date\" size= \"50%;\" name=\"date\" value=\"date('d-m-Y',$res[date])\" >";
答:
0赞
Mohammad Salehi
1/3/2023
#1
您向日期输入传递了错误的格式。 日期输入必须填写格式化文本RFC3339您可以阅读更多相关信息。
要将当前格式更改为格式,可以使用以下代码:Y-m-d
DateTime::createFromFormat('d-m-Y', $dateInput)->format('Y-m-d');
如果您使用的是MySQL,则它使用日期类型列的格式,因此,使用从PHP到MySQL字段保存日期似乎是正确的方法。YYYY-MM-DD
Y-m-d
date
评论
0赞
user2741620
1/4/2023
谢谢。经过大量测试,我能够让以下代码工作:$date 1 = date_create(“$res[date]”);$date 2 = date_format($date 1,“Y-m-d”);$date = “<input type=\”date\“ ...值=\“$date 2\” >“;
0赞
user2741620
1/4/2023
#2
所以我相信日期没有显示在我的输入字段上的原因是因为它采用 String 数据类型并且需要格式化为 DATE。
$date1 = date_create("$res[date]");
$date2 = date_format($date1,"Y-m-d");
$date = "<input type=\"date\" id=\"date\" size= \"50%;\" name=\"date\" value=\"$date2\" >";
有了这个,我也可以为《时代》做同样的事情
$time1 = date_create("$res[time]");
$time2 = date_format($time,"H:i:s");
$time = "<input type=\"time\" id=\"time\" size= \"50%;\" name=\"time\" value=\"$time2\" >";
评论
0赞
Mohammad Salehi
1/4/2023
如果答案解决了您的问题,请将您的答案标记为“已接受的答案”。
1赞
Juan
1/4/2023
你回答你的问题“相信原因就是这样”,但这些迹象表明我们中的许多人在他的回答中都给出了评论和@MohammadSalehi,不......?
下一个:动态更改输入到输出
评论
Y-m-d
<thead> <th>Date </th><td><input type="date" id="date" size="50%;" name="date" value="<? echo $res[date]; ?>"></td> </thead>
All the "date" in my database are of the following format: 'd-m-Y' (E.g. 09-03-2022)
...为什么要将日期作为文本存储在数据库中?这是一个糟糕的设计错误。使用 DATE 或 DATETIME 列类型,这就是它的用途。日期不是字符串(除非您向人类展示它们或序列化它们以进行传输)。您当前的存储格式使得无法按日期正确比较、排序或筛选数据库行,并且 - 正如您发现的那样 - 更难以以有用的方式提取日期信息以供在其他地方使用。value