GNU find is the way to go. For example, to delete all files in the current directory between 1 and 5 august, you can use the following command
find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete
It is better to execute the command without the
-delete action, first, to see the listing of interested files (a good substitute could be
-ls that produce an ls-like listing).
-maxdepth 1 specification will traverse all subdirectories, too.
You can also specify hours, for example
find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
! -newermt '2011-08-06 23:01:00' -delete
Be warned to not remove single quotes, that protect spaces between date and time.
! is a negation, it should be read: newer that this date but not newer that this other date.