I know SQL uses date() but I thought WordPress uses the_date and current_time. In either event for my installation current_time worked vs date.
But yeah… that’s quite a process. So do you have to change those date ranges every month? There has to be an easier way to get those date ranges than a manual range like that.