47 foreach ($value as $key=>$val){
48 if ( is_array($val) )
$out[$key] = $val[0];
49 else $out[$key] = $val;
60 if ( !isset($value) || !$value )
return null;
61 if ( $value ==
'0000-00-00' || $value ==
'0000-00-00 00:00:00' )
return null;
62 if ( is_array($value) and (isset( $value[
'year']) or isset($value[
'hours'])) )
return $value;
67 if ( strlen($value)>=4) $date[
'Y'] = substr($value,0,4);
68 if ( strlen($value)>=6) $date[
'm'] = substr($value,4,2);
69 if ( strlen($value)>=8) $date[
'd'] = substr($value,6,2);
70 if ( strlen($value)>=10) $date[
'H'] = substr($value,8,2);
71 if ( strlen($value)>=12) $date[
'i'] = substr($value,10,2);
72 if ( strlen($value)>=14) $date[
's'] = substr($value,12,2);
74 else if ( !is_array($value) ){
75 if ( function_exists(
'date_parse') ){
76 $out = date_parse($value);
80 unset(
$out[
'minute']);
82 unset(
$out[
'second']);
87 if ( preg_match(
'/^(\d{4})(-(\d{2}))?(-(\d{2}))?( (\d{2}):(\d{2})(:(\d{2}))?)?$/', $value, $matches)){
89 $date[
'year'] = $matches[1];
90 $date[
'month'] = @$matches[3];
91 $date[
'day'] = @$matches[5];
92 $date[
'hours'] = @$matches[7];
93 $date[
'minutes'] = @$matches[8];
94 $date[
'seconds'] = @$matches[10];
100 $units = explode(
' ',
'Y m M F d h a A i s');
102 foreach ($units as $unit){
104 $date[$unit] = date($unit, strtotime($value));
110 if ( $isNull )
return null;
117 $params[
'year'] = isset($date[
'Y']) ? $date[
'Y'] : date(
'Y');
118 $params[
'month'] = isset($date[
'm']) ? $date[
'm'] : (
119 isset($date[
'M']) ? $date[
'M'] : (
120 isset($date[
'F']) ? $date[
'F'] : null
122 $params[
'day'] = isset($date[
'd']) ? $date[
'd'] : null;
123 if ( isset($date[
'H'] ) ) $params[
'hours'] = $date[
'H'];
124 else if (isset($date[
'h']) && isset($date[
'a']) ) $params[
'hours'] = date(
'H', strtotime($date[
'h'].
":00".$date[
'a']));
125 else if (isset($date[
'h']) && isset($date[
'A']) ) $params[
'hours'] = date(
'H', strtotime($date[
'h'].
":00".$date[
'A']));
126 else if (isset($date[
'h']) ) $params[
'hours'] = $date[
'h'];
127 else $params[
'hours'] = null;
129 $params[
'minutes'] = isset( $date[
'i'] ) ? $date[
'i'] : null;
130 $params[
'seconds'] = isset( $date[
's'] ) ? $date[
's'] : null;
132 foreach ( array_keys($params) as $param){
133 $params[$param] = intval($params[$param]);
145 if ( is_array($value) )
return false;
147 return preg_match(
'/^\d{4,14}$/',$value);
156 if ( !isset($value) or !is_array($value) or count($value) == 0 )
return '';
157 return str_pad($value[
'year'],4,
"0",STR_PAD_LEFT).
'-'.
158 str_pad($value[
'month'],2,
"0",STR_PAD_LEFT).
'-'.
159 str_pad($value[
'day'],2,
"0",STR_PAD_LEFT);
167 if ( !isset($value) or !is_array($value) or count($value) == 0)
return '';
168 return str_pad($value[
'year'],4,
"0",STR_PAD_LEFT).
'-'.
169 str_pad($value[
'month'],2,
"0",STR_PAD_LEFT).
'-'.
170 str_pad($value[
'day'], 2,
"0", STR_PAD_LEFT).
' '.
171 str_pad($value[
'hours'],2,
"0",STR_PAD_LEFT).
':'.
172 str_pad($value[
'minutes'],2,
"0",STR_PAD_LEFT).
':'.
173 str_pad($value[
'seconds'],2,
"0", STR_PAD_LEFT);
180 if ( !isset($value) or !is_array($value) or count($value) == 0 )
return '';
181 return str_pad($value[
'hours'],2,
"0",STR_PAD_LEFT).
':'.
182 str_pad($value[
'minutes'],2,
"0", STR_PAD_LEFT).
':'.
183 str_pad($value[
'seconds'],2,
"0", STR_PAD_LEFT);
205 if ( version_compare(PHP_VERSION,
'5.1',
'<') ){
206 return (strtotime($date) == -1);
208 return (strtotime($date) ===
false);