如何将出生日期(电话类型日期字段类)添加到数据库并设置年龄限制


How to add birthdate (tel type datefield class) to database and set an age restriction?

正如标题所示,我很难找到一种干净优雅的方法来为用户的出生日期添加工作php函数并为我创建的出生日期表单设置年龄限制:

<div id="date1" class="datefield">
            <input id="day" type="tel" maxlength="2" placeholder="DD"/> /
            <input id="month" type="tel" maxlength="2" placeholder="MM"/> /
            <input id="year" type="tel" maxlength="4" placeholder="YYYY" />
</div>

以下是我为生日设置的变量:

//initializing registration variables to prevent errors
$bday = ""; //birthday
$bday = date("Y-m-d");

在我的数据库中,birth_date类型被设置为一个日期。到目前为止,我的设置正确吗?我理解可能需要将日期分为月、日和年,但如果我想包含有关每个月的不同天数的条件,我感兴趣的是用户输入的有效年份。

编辑:刚刚被替换的段落,我意识到我把它弄得比必要的更复杂。我只是想要一个php验证函数来检查输入的年份是否在期望的年龄规范范围内。因此,在您看到的第一个代码中,我将删除日和月字段,只保留年字段。

离题(但仍然相关),我是否应该甚至不费心提示用户输入他们的出生日期,而是在条款/隐私政策中记录所需的年龄限制?我知道,即使有一个带有限制的年龄表,也不是每个人都愿意遵守规则(例如,像Facebook这样的社交网络服务有13岁的年龄限制,但更小的孩子可以通过撒谎来解决这个问题;Twitter的年龄限制是文档化的,而不是提示的。

请多多指教,谢谢。

Php有checkdate函数来检查日期是否有效。为了确保年龄,您可以使用date_add()函数来创建生日日期时间对象+您的范围。然后比较该对象是否小于当前时间

您可以使用以下代码来验证日期

ValidationExpression = " (((0 | 1) (1 - 9) | 2 | (1 - 9) 3 (0 - 1))/(0 (1 - 9) | 1 [0])/((19 | 20) ' ' d)) $"