I am trying to make sure a date is a valid date, it is like so 07/24/2015 - 07/24/2015
This is my code to make sure it's value
//split the start and end date in to 2 and compare both to a real date to make sure they're valid
$newdate = explode("-", $start);
//echo 1;
//make sure date 2 is set
if(!isset($newdate[1])): Session::set('error', 13); return false; endif;
//check if newdate 0 and 1 are real dates
$date1 = DateTime::createFromFormat('m-d-Y', str_replace("/","-",$newdate[0]));
$date2 = DateTime::createFromFormat('m-d-Y', str_replace("/","-",$newdate[1]));
echo date("m-d-Y").'<br/>';
echo str_replace("/","-",$newdate[0]);
var_dump($date1);
var_dump($date2);
//not valid dates
if($date1 == false || $date2 == false): Session::set('error',13); return false; endif;
I have tried it with, and without str_replace, I have compared the date("m-d-Y"); to my $newdate with str_replace and they match perfect, but I am still getting a (bool)false with my dates even though they're valid
I would start by fixing the explode to be on ' - '
, since '-'
is leaving extra spaces at the beginning and end of your date strings. That will fix it. Shown here: https://eval.in/404554
Next, you don't need to bother with str_replace on them.
$dates = '07/24/2015 - 07/24/2015';
$newdate = explode(" - ", $dates);
$date1 = DateTime::createFromFormat('m/d/Y', $newdate[0]);
$date2 = DateTime::createFromFormat('m/d/Y', $newdate[1]);
Valid dates: https://eval.in/404555