WP Query date_query with several date range

You can use multiple date ranges in your query like so:

$args['date_query'] = array(
    'relation' => 'OR',
    array(
        'after' => '-24 hours',
    ),
    array(
        'after' => '-1 week',
    ),
    array(
        'before' => '-2 weeks',
    )
);

This will get you posts that were published in any of these ranges.

So now you have to build such array based on your filter data.