oops... I only had to pass in some default date paramaters and use the same names in the short and now it works. Thanks for your help PFMaBiSmAd, much appreciated.
Use this shortcode in WP... [daterange s_date=15 July 2012" e_date="17 July 2013]
function date_range($params = array()){
extract(shortcode_atts(array(
's_date' => '1 January 2012',
'e_date' => '2 January 2012',
), $params));
list($s_day,$s_month,$s_year) = sscanf($s_date, "%d %s %d");
list($e_day,$e_month,$e_year) = sscanf($e_date, "%d %s %d");
if($s_year == $e_year){
// same year, either 1st or 2nd form
if($s_month == $e_month){
// same year, same month, 1st form - DAY. - DAY. MONTH YEAR
return "$s_day. - $e_day. $e_month $e_year";
} else {
// same year, different month, 2nd form - DAY. MONTH - DAY. MONTH YEAR
return "$s_day. $s_month - $e_day. $e_month $e_year";
}
} else {
// different year - 3rd form - DAY. MONTH YEAR - DAY. MONTH YEAR
return "$s_day. $s_month $s_year - $e_day. $e_month $e_year";
}
}
add_shortcode('daterange', 'date_range');