我正在努力确保日期是有效日期,就像这样2015年7月24日 - 2015年7月24日
这是我的代码,以确保它的价值
//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;
我试过了,没有str_replace,我比较了日期(“m-d-Y”);使用str_replace来我的$ newdate并且它们匹配完美,但即使它们是有效的,我仍然会得到(bool)我的日期错误
答案 0 :(得分:0)
我首先将爆炸修复为' - '
,因为'-'
会在日期字符串的开头和结尾留下额外的空格。这将解决它。如下所示:https://eval.in/404554
接下来,您不需要为它们打扰str_replace。
$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]);