string espected but array given in custom pop_date field #default_value
You are getting the "expects parameter 1 to be string" error because the only value the date popup form element accepts as default value is a string with the format described in date_popup_element_info().


  Set the #type to date_popup and fill the element #default_value with a date adjusted to the proper local timezone in datetime format (YYYY-MM-DD HH:MM:SS).


The code you should use is the following one.

$form['click_stats_date_start'] = array(
  '#type' =&gt; 'date_popup',
  '#title' =&gt; t('Start date'),
  '#label_display' =&gt; '',
  '#date_format' =&gt; 'd/m/Y',
  '#date_year_range' =&gt; '-1:+0',
  '#date_label_position' =&gt; 'hidden',
  '#default_value' =&gt; date('Y-m-d'),
  '#size' =&gt; 20,
  '#required' =&gt; TRUE,
);


If you need to visualize a specific value as default value, then the code should be the following one. (Replace $saved_timestamp with the value you need to show.)

$form['click_stats_date_start'] = array(
  '#type' =&gt; 'date_popup',
  '#title' =&gt; t('Start date'),
  '#label_display' =&gt; '',
  '#date_format' =&gt; 'd/m/Y',
  '#date_year_range' =&gt; '-1:+0',
  '#date_label_position' =&gt; 'hidden',
  '#default_value' =&gt; date('Y-m-d', $saved_timestamp),
  '#size' =&gt; 20,
  '#required' =&gt; TRUE,
);