当用户在文本框中输入日期时,我要检查它是否为yyyy-mm-dd格式。
注意即使是月份,日期,例如:2012-02-32也无效,因为日期只能到31,月份相同,他不能输入13作为月份。
如果格式错误,我应该回复。
提前致谢!
答案 0 :(得分:1)
试试这个
list($year,$month,$day) = explode('-', $input);
if (checkdate($month, $day, $year)) {
// Correct
} else {
// Incorrect
}
答案 1 :(得分:1)
阅读http://php.net/manual/en/function.checkdate.php上的评论非常有用,包括通过正则表达式进行验证。
我使用该页面中的以下代码:
function checkDateTime($data) {
if (date('Y-m-d', strtotime($data)) == $data) {
return true;
} else {
return false;
}
}
另外,我建议您添加JavaScript datepicker http://jqueryui.com/demos/datepicker/
答案 2 :(得分:0)
答案 3 :(得分:0)
$e = explode('-', '2012-02-32');
if (checkdate($e[1], $e[2], $e[0])){
// Valid
}else{
// Invalid
}
答案 4 :(得分:0)
您不应该使用正则表达式。更好(可能不是最好的)是使用checkdate();
$parts = explode('-', $input);
if (sizeof($parts) == 3 && checkdate($parts[1], $parts[2], $parts[0])) {
// Correct
} else {
// Incorrect
}