我试图进行用户注册。我只想询问使用3输入类型的日期=" text"如何使用PHP清理月,日和年。如果2月份是闰年或11月份只有30天且用户输入31个。谢谢大家!
if (isset($_POST['submit'])) {
$yy = preg_replace('#[^0-9]#i','',$_POST['yy']);
$mm = preg_replace('#[^0-9]#i','',$_POST['mm']);
$dd = preg_replace('#[^0-9]#i','',$_POST['dd']);
if ($mm > 12) {
$error[] = 'Invalid month.';
} else if ($dd > 31) {
$error[] = 'Invalid day.';
} else if (strlen($yy) < 4) {
$error[] = 'Invalid year.';
}
}
答案 0 :(得分:0)
checkdate功能可能是您正在寻找的内容:http://www.php.net/manual/en/function.checkdate.php
if (checkdate(intval($mm) . ',' . intval($dd) . ',' . intval($yy))) echo 'valid!';
答案 1 :(得分:0)
检查日期是否正确返回true,否则为false
<?php
var_dump(checkdate(12,31,-400)); ///bool(false)
echo "<br>";
var_dump(checkdate(2,29,2003)); ////bool(false)
echo "<br>";
var_dump(checkdate(2,29,2004)); ////bool(true)
?>
答案 2 :(得分:0)
以下正则表达式可以验证正确和错误的日期,但是你需要对代码进行一些重构,即
有效日期解析由以下正则表达式“2013-09-12”;
$date = $_POST['yy'].'-'.$_POST['mm'].'-'.$_POST['dd'];
或
$date = $yy.'-'.$mm.'-'.$dd'; // after retrieving values of month, year, day
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; // date is valid in above define format
}else{
return false; // invalid date
}
或使用Php CheckDate函数,它检查日期的有效性
bool checkdate ( int $month , int $day , int $year )