=10) $havetime=1; switch($len) { case 14: $pattern="/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/"; break; case 12: $pattern="/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/"; break; case 10: $pattern="/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/"; break; case 18: $pattern="/(\d{4})(\d{2})(\d{2})/"; break; case 6: $pattern="/(\d{2})(\d{2})(\d{2})/"; break; case 4: $pattern="/(\d{2})(\d{2})/"; break; case 2: $pattern="/(\d{2})/"; break; default: return array(); } if(preg_match($pattern,$str,$parsed)) { $y=$parsed[1]; $mo=(count($parsed)>2)?$parsed[2]:1; $d=(count($parsed)>3)?$parsed[3]:1; $h=(count($parsed)>4)?$parsed[4]:0; $mi=(count($parsed)>5)?$parsed[5]:0; $s=(count($parsed)>6)?$parsed[6]:0; } else return array(); } else if(is_string($str)) // date,time,datetime { if(preg_match("/(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})/", $str, $parsed)) // datetime { $y = $parsed[1]; $mo = $parsed[2]; $d = $parsed[3]; $h = $parsed[4]; $mi = $parsed[5]; $s = $parsed[6]; $havedate=1; $havetime=1; } else if(preg_match("/(\d{4})-(\d{1,2})-(\d{1,2})/", $str, $parsed)) // date { $y = $parsed[1]; $mo = $parsed[2]; $d = $parsed[3]; $h = 0; $mi = 0; $s = 0; $havedate=1; } else if(preg_match("/(\d{2})-(\d{1,2})-(\d{1,2})/", $str, $parsed)) // time { $y=$now["tm_year"]; $mo=$now["tm_mon"]+1; $d=$now["tm_mday"]; $h = $parsed[1]; $mi = $parsed[2]; $s = $parsed[3]; $havetime=1; } else return array(); } else { return array(); } if(!$havetime) { $h=0; $mi=0; $s=0; } if(!$havedate) { $y=$now["tm_year"]+1900; $mo=$now["tm_mon"]+1; $d=$now["tm_mday"]; } // return mktime($h,$mi,$s,$mo,$d,$y); return array((integer)$y,(integer)$mo,(integer)$d,(integer)$h,(integer)$mi,(integer)$s); } ?>