【发布时间】:2023-03-26 12:13:01
【问题描述】:
我的问题是,当我尝试在我的数据库中保存一个日期时,我收到了这个日期:1970-01-01
这是我的html代码:
<input type="text" name="dob" value="<?php echo $rows['dob']; ?>" required title="The Date of Birth is required" pattern="(0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])[-](19|20)\d\d"></input>
这是我获取值的 php 代码:
$dob = $_POST['dob'];
echo $dob.'<br>';
$dob_new = date('Y-m-d', strtotime($dob));
echo $dob_new.'<br>';
这是结果:
01-22-1984
1970-01-01
第一个日期是用户可以输入的日期的一个例子,第二个日期是转换的结果!
神秘的是,有时这项工作,但有时没有......那么这里发生了什么?有什么建议吗?我的代码有错误吗?
【问题讨论】:
-
我们能看到所有的代码吗?这将有助于隔离问题。
-
看来你做事很辛苦。而不是
<input type="text">,您应该使用<input type="date">,以便每次都正确格式化日期。另一个不错的选择是使用 3 个下拉菜单,这些下拉菜单预先填充了可能的日期、月份和年份。这样您就可以控制格式。 -
EternalHour 感谢您的建议,但我需要将此字段设为文本,因为我正在使用数据库查询填充此字段,而当我尝试填写日期字段时,什么也没有发生!这就是我使用 type=text 的原因。
-
日期类型支持
value属性,如果格式正确,从数据库中填充应该没有问题。