Because PHP < 5.3 doesn't support the DateInterval class, DateTime::diff() (which is the right way to do this) is unavailable. You will need to do this manually for it to work in 5.2.x.
The math is actually quite simple:
// Get the difference between the two dates, in seconds
$diff = $future_date->format('U') - $now->format('U');
// Calculate the days component
$d = floor($diff / 86400);
$diff %= 86400;
// Calculate the hours component
$h = floor($diff / 3600);
$diff %= 3600;
// Calculate the minutes component
$m = floor($diff / 60);
// Calculate the seconds component
$s = $diff % 60;
// $d, $h, $m and $s now contain the values you want, so you can just build a
// string from them
$str = "$d d, $h h, $m m, $s s";
However with larger intervals this will introduce inaccuracies, because it does not take leap seconds into account. This means that you could end up a few seconds out - but since your original format string does not contain a seconds component, I doubt this will matter too much for what you are doing.
Note also that you need to subtract $now from $future_date, not the other way around, or the result will be negative.
See it working