这是我添加工作的表单。
<form action="adminindex.php?page=add_job" method="post">
<label>Job Title</label>
<input type="text" name="title">
<label>Opening</label>
<input type="number" name="opening">
<label>Deadline</label>
<input type="text" name="deadline" placeholder="yyyy-mm-dd">
<label> </label>
<input type="submit" name="submit" value="Add">
</form>
现在,我如何检查表单中输入的日期是否为yyyy-mm-dd形式?
您可以使用strtotime
比较PHP对该输入的解释提供的日期。
$date_format = 'Y-m-d';
$input = '2009-03-03';
$input = trim($input); // remove any spaces around the date
$time = strtotime($input);
if(date($date_format, $time) == $input)
{
return TRUE;
}
如本链接所述:
这里$date="2012-09-12";
if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/",$date))
{
return true;
}else{
return false;
}
您可以使用不同的正则表达式来匹配您的要求XXXX-XX-XX,如下所示:
preg_match("/^'d{4}-'d{2}-'d{2}$/");
将匹配给定字符串中的四个数字-两个数字-两个数字(几乎是yyyy-mm-dd)。但是你可以用更复杂的表达式做更多的事情。
下面是上面的正则表达式的测试:
23-03-2012 // false
1987-12-24 // true
22-03-1981 // false
0000-00-00 // true
请查看下面的regex小抄链接:
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/这可能会有帮助
PHP: checkdate
您可以使用bool checkdate ( int $month , int $day , int $year )
,如果日期有效,它将输出true
Quote From PHP:
<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>
上面的示例将输出:
bool(true)
bool(false)