check out this function in php http://www.php.net/manual/en/datetime.diff.php
it gives you the difference between two dates, you can scan other dates, find 7 day differences (or get $diff->d%7==0) and group by that..
eventually, pre-sort into tables of groups using %7==0 and then check those groups for integrity if you need only dates that happen EVERY week. should speed up.