如何在格式变化时验证PHP中的日期

I am working on a site and have to validate a date from a form. i am using jquery picker to select the date, however, the user can change the selection manually therefore i want to validate for any possible format (January, 1 2000, 1 jan 2000 etc). I have looked around and am having trouble finding a solution. I am trying using strtottime to turn the date to a stamp and I am then using checkdate. The validation with strtotime works fine if i enter for instance January 40, 2000, however, if i enter a date that is below or equal to 31 with any month strtotime moves it to the following month, for instance, february 31, 2017 turns to March 3, 2017. This is making the checkdate function useless as the date passed to it is always valid. is there a solution to this?

    $thisD = 'February 31, 2017';
if (strtotime($thisD) === false)
{
    echo "<BR>DATE FORMAT NOT VALID <BR>";
}
else
{
    echo "<BR>DATE FORMAT  VALID <BR>";
    $thisDStr = strtotime($thisD);
    echo "Original date was $thisD, date now is " . date('F, j Y',$thisDStr). ' -> ';

        if (checkdate(date('n',$thisDStr), date('j',$thisDStr), date('Y',$thisDStr)))
        {
            echo ' is valid <br>';
        }
        else
        {
            echo ' is NOT valid <br>';
        }
}//end else