Collect posts from last 48 hours

Never tested this ,but i believe you need to add WHERE clause to your query with time difference
like so :

$timediff .= " AND post_date > '" . date('Y-m-d', strtotime('-2 days')) . "'";

you can find it also in the codex

http://codex.wordpress.org/Class_Reference/WP_Query#Time_Parameters

If you do not want to use on query, but inside the loop, you could also do

<?php while (have_posts()) : the_post(); ?>

<?php $mylimit=15 * 86400; //days * seconds per day
$post_age = date('U') - get_post_time('U');
if ($post_age < $mylimit) { ?>

// your functions or display here 

<?php } ?>
<?php endwhile; ?>