如何检查表单中输入的日期是yyyy-mm-dd格式还是不在core php中


How to check the inputted date in the form is in yyyy-mm-dd format or not in core php?

这是我添加工作的表单。

<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>&nbsp;</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)