【发布时间】:2015-02-12 16:44:35
【问题描述】:
我有一个以日期和时间为输入的 HTML 表单:
<div>
<label for="date_of_appointment">Date of appointment *</label>
<input type="date" name="date_of_appointment" id="date_of_appointment"
value="<?php echo $date_of_appointment; ?>"
required oninvalid="setCustomValidity('Fill in the date')"
oninput="setCustomValidity('')">
</div>
<div>
<label for="time_of_appointment">Time of appointment *</label>
<input type="time" name="time_of_appointment" id="time_of_appointment"
value="<?php echo $time_of_appointment; ?>"
required oninvalid="setCustomValidity('Fill in the time')"
oninput="setCustomValidity('')">
</div>
我正在使用 HTML5 输入类型 date 和 time。
捕获所有浏览器中的所有错误很重要。
您将如何为此设计验证以确保用户将提供
插入数据库的正确格式的日期和时间?
在我的解决方案中,我将按如下方式对其进行验证:
并非所有浏览器都提供时间/日期选择器。 这些字段的预期格式是什么?
假设预期的日期格式是 YYYY-MM-DD。 我会用 PHP explode() 函数拆分它并使用 PHP checkdate($month, $day, $year) 函数。 并且类似地为预期时间格式创建了一个例程。 我可以在第 1 步和第 2 步之间使用 javascript 做更多事情,而无需重新加载 一个页面告诉用户格式错误,他立即输入内容 打破格式?
- 将格式正确的值插入 DB。
【问题讨论】:
-
验证必须在服务器端 (PHP) 实现,并且可以通过客户端站点 (HTML/JS) 上的验证来复制。对于客户端验证,您需要 JS,如 many browsers don't support date/time inputs yet
-
你为什么不使用 Jquery 日历日期时间选择器
标签: php mysql html validation input