मेरे पास एक php मेथोड है जो जांचता है कि पैरामीटर में पास किया गया है या नहीं। यहाँ यह है: तोis_date() खराब है
public function is_Date($str){
if (is_numeric($str) || preg_match('^[0-9]^', $str)){
$stamp = strtotime($str);
$month = date('m', $stamp);
$day = date('d', $stamp);
$year = date('Y', $stamp);
return checkdate($month, $day, $year);
}
return false;
}
, मैं इसे इस तरह से परीक्षण कर दिया:
$var = "100%";
if(is_Date($var)){
echo $var.' '.'is a date';
}
$var = "31/03/1970";
if(is_Date($var)){
echo $var.' '.'is a date';
}
$var = "31/03/2005";
if(is_Date($var)){
echo $var.' '.'is a date';
}
$var = "31/03/1985";
if(is_Date($var)){
echo $var.' '.'is a date';
}
नोट आईएफएस में से प्रत्येक के भी रूप में एक और को बयान किया है कि:
else{
echo $var.' '.'is not a date'
}
उत्पादन:
100% is a Date
31/03/1970 is a Date
31/03/2005 is a Date
31/03/1985 is a Date
मेरी समस्या है, क्यों है एक तिथि के रूप में प्रदर्शित 100% और 31/03/1985
क्यों एक तारीख के रूप में नहीं पढ़ा जा रहा है?
क्यों के रूप में किसी भी सुराग अत्यधिक सराहना हो जाएगा के रूप में मैं भी Regex
बस क्यों की जांच नहीं: 'is_numeric (strtotime (नई उत्पादन एक तारीख है, जो मैं क्या planned.here अंतिम कोड sippette कि काम करता है के रूप में 100% प्रदर्शित stoped है $ str)) '? – hjpotter92
'^ [0-9] ^' में आपका क्या मतलब है? –