It would be some logic using range
in the query or a dynamic script. See ideas here: How to filter date field by days and hours separately
You could also consider using runtime fields (Retrieve a runtime field | Elasticsearch Reference [7.11] | Elastic) to define day of the week or hour of day (or both) and then filter your query on that