PHP中的日期验证

时间:2010-03-15 19:29:39

标签: php regex validation

进入regex的{​​{1}}表达式将以

格式验证日期的功能是什么

preg_split或如何在PHP中验证格式7-Mar-10的日期

感谢。

3 个答案:

答案 0 :(得分:9)

strtotime

这是一个如何使用它的例子

function isValidTime($str) {
    return strtotime($str) !== false;
}

答案 1 :(得分:0)

DateTime类的createFromFormat方法(也以function形式提供)允许用户根据给定格式解析日期字符串。如果您想查看哪些内容出错,该课程还可以帮助您跟踪错误。

这是一个快速的yay / nay验证功能:

function valid($date, $format = 'j-M-y') {
    $datetime = DateTime::createFromFormat($format, $date, new DateTimeZone('UTC'));
    $errors   = DateTime::getLastErrors();
    return ($errors['warning_count'] + $errors['error_count'] === 0);
}

var_dump(valid('7-Mar-10')); // bool(true)
var_dump(valid('7-3-10'));   // bool(false)

当然,以上仅用于验证单一格式的日期(并且仅在PHP 5.3中可用),因此如果您只是想接受任何日期(即使是'错误'日期,自动转换为正确的值),或者出于任何原因还不能使用PHP 5.3,然后如其他答案所述,strtotime会有所帮助。

答案 2 :(得分:-3)

我首先爆炸,

$parts=explode("-",$date);

然后使用数组

$months=array("Jan"=>1,"Feb"=>2...)

然后使用checkdate($ months [$ parts 1],$ parts [0],$ parts [2]);