diff --git a/backend/src/baserow/contrib/database/views/view_filters.py b/backend/src/baserow/contrib/database/views/view_filters.py
index e077dc71b..9da2e31ab 100644
--- a/backend/src/baserow/contrib/database/views/view_filters.py
+++ b/backend/src/baserow/contrib/database/views/view_filters.py
@@ -1688,7 +1688,7 @@ DATE_FILTER_OPERATOR_BOUNDS = {
     ),
     DateFilterOperators.THIS_WEEK: lambda filter_date: DateFilterBounds(
         filter_date + relativedelta(weekday=MO(-1)),
-        filter_date + relativedelta(weekday=MO(+1)),
+        filter_date + relativedelta(days=1, weekday=MO(+1)),
     ),
     DateFilterOperators.THIS_MONTH: lambda filter_date: DateFilterBounds(
         filter_date.replace(day=1),
@@ -1699,8 +1699,8 @@ DATE_FILTER_OPERATOR_BOUNDS = {
         filter_date.replace(day=1, month=1) + relativedelta(years=1),
     ),
     DateFilterOperators.NEXT_WEEK: lambda filter_date: DateFilterBounds(
-        filter_date + relativedelta(weekday=MO(+1)),
-        filter_date + relativedelta(weekday=MO(+2)),
+        filter_date + relativedelta(days=1, weekday=MO(+1)),
+        filter_date + relativedelta(days=1, weekday=MO(+2)),
     ),
     DateFilterOperators.NEXT_MONTH: lambda filter_date: DateFilterBounds(
         filter_date.replace(day=1) + relativedelta(months=1),
@@ -1716,7 +1716,7 @@ DATE_FILTER_OPERATOR_BOUNDS = {
     ),
     DateFilterOperators.NR_WEEKS_AGO: lambda filter_date: DateFilterBounds(
         filter_date + relativedelta(weekday=MO(-1)),
-        filter_date + relativedelta(weekday=MO(+1)),
+        filter_date + relativedelta(days=1, weekday=MO(+1)),
     ),
     DateFilterOperators.NR_MONTHS_AGO: lambda filter_date: DateFilterBounds(
         filter_date.replace(day=1), filter_date.replace(day=1) + relativedelta(months=1)
@@ -1731,7 +1731,7 @@ DATE_FILTER_OPERATOR_BOUNDS = {
     ),
     DateFilterOperators.NR_WEEKS_FROM_NOW: lambda filter_date: DateFilterBounds(
         filter_date + relativedelta(weekday=MO(-1)),
-        filter_date + relativedelta(weekday=MO(+1)),
+        filter_date + relativedelta(days=1, weekday=MO(+1)),
     ),
     DateFilterOperators.NR_MONTHS_FROM_NOW: lambda filter_date: DateFilterBounds(
         filter_date.replace(day=1), filter_date.replace(day=1) + relativedelta(months=1)
diff --git a/backend/tests/baserow/contrib/database/view/test_view_filters.py b/backend/tests/baserow/contrib/database/view/test_view_filters.py
index 27dead907..51908684b 100644
--- a/backend/tests/baserow/contrib/database/view/test_view_filters.py
+++ b/backend/tests/baserow/contrib/database/view/test_view_filters.py
@@ -6821,3 +6821,113 @@ def test_all_view_filters_can_accept_strings_as_filter_value(data_fixture):
         handler.get_queryset(view)
     except Exception as e:
         pytest.fail(f"Exception raised: {e}")
+
+
+@pytest.mark.django_db
+def test_week_operator_for_view_multi_date_filters(data_fixture):
+    user = data_fixture.create_user()
+    table = data_fixture.create_database_table(user=user)
+    date_field = data_fixture.create_date_field(table=table)
+    view = data_fixture.create_grid_view(table=table)
+    rows = (
+        RowHandler()
+        .force_create_rows(
+            user=user,
+            table=table,
+            rows_values=[
+                {date_field.db_column: date(2025, 3, 16)},
+                {date_field.db_column: date(2025, 3, 17)},  # MO-1
+                {date_field.db_column: date(2025, 3, 23)},
+                {date_field.db_column: date(2025, 3, 24)},  # MO
+                {date_field.db_column: date(2025, 3, 25)},
+                {date_field.db_column: date(2025, 3, 26)},
+                {date_field.db_column: date(2025, 3, 27)},
+                {date_field.db_column: date(2025, 3, 28)},
+                {date_field.db_column: date(2025, 3, 29)},
+                {date_field.db_column: date(2025, 3, 30)},
+                {date_field.db_column: date(2025, 3, 31)},  # MO+1
+                {date_field.db_column: date(2025, 4, 1)},
+                {date_field.db_column: date(2025, 4, 6)},
+                {date_field.db_column: date(2025, 4, 7)},  # MO+2
+            ],
+        )
+        .created_rows
+    )
+
+    view_filter = data_fixture.create_view_filter(
+        view=view,
+        field=date_field,
+        type="date_is",
+        value="Europe/Rome??this_week",
+    )
+
+    handler = ViewHandler()
+    model = table.get_model()
+    for day in range(24, 30):  # MO-SU
+        with freeze_time(f"2025-03-{day}"):
+            qs = handler.apply_filters(view, model.objects.all())
+            [getattr(r, date_field.db_column) for r in qs.all()] == [
+                date(2025, 3, 24),
+                date(2025, 3, 25),
+                date(2025, 3, 26),
+                date(2025, 3, 27),
+                date(2025, 3, 28),
+                date(2025, 3, 29),
+                date(2025, 3, 30),
+            ]
+
+    view_filter.value = "Europe/Rome??one_week_ago"
+    view_filter.save()
+
+    for day in range(24, 30):  # MO-SU
+        with freeze_time(f"2025-03-{day}"):
+            qs = handler.apply_filters(view, model.objects.all())
+            [getattr(r, date_field.db_column) for r in qs.all()] == [
+                date(2025, 3, 17),
+                date(2025, 3, 18),
+                date(2025, 3, 23),
+            ]
+
+    view_filter.value = "Europe/Rome?2?nr_weeks_ago"
+    view_filter.save()
+
+    for day in range(24, 30):  # MO-SU
+        with freeze_time(f"2025-03-{day}"):
+            qs = handler.apply_filters(view, model.objects.all())
+            [getattr(r, date_field.db_column) for r in qs.all()] == [
+                date(2025, 3, 16),
+            ]
+
+    view_filter.value = "Europe/Rome??next_week"
+    view_filter.save()
+
+    for day in range(24, 30):  # MO-SU
+        with freeze_time(f"2025-03-{day}"):
+            qs = handler.apply_filters(view, model.objects.all())
+            [getattr(r, date_field.db_column) for r in qs.all()] == [
+                date(2025, 3, 31),
+                date(2025, 4, 1),
+                date(2025, 4, 6),
+            ]
+
+    view_filter.value = "Europe/Rome??next_week"
+    view_filter.save()
+
+    for day in range(24, 30):  # MO-SU
+        with freeze_time(f"2025-03-{day}"):
+            qs = handler.apply_filters(view, model.objects.all())
+            [getattr(r, date_field.db_column) for r in qs.all()] == [
+                date(2025, 3, 31),
+                date(2025, 4, 1),
+                date(2025, 4, 6),
+            ]
+
+    view_filter.value = "Europe/Rome?2?nr_weeks_from_now"
+    view_filter.save()
+
+    for day in range(24, 30):  # MO-SU
+        with freeze_time(f"2025-03-{day}"):
+            qs = handler.apply_filters(view, model.objects.all())
+            [getattr(r, date_field.db_column) for r in qs.all()] == [
+                date(2025, 4, 7),
+            ]
diff --git a/changelog/entries/unreleased/bug/3526_fix_bug_with_weeks_operators_for_date_filters.json b/changelog/entries/unreleased/bug/3526_fix_bug_with_weeks_operators_for_date_filters.json
new file mode 100644
index 000000000..0ed05e630
--- /dev/null
+++ b/changelog/entries/unreleased/bug/3526_fix_bug_with_weeks_operators_for_date_filters.json
@@ -0,0 +1,8 @@
+{
+    "type": "bug",
+    "message": "Fix issue with 'this_week' and 'next_week' operators in date filters",
+    "domain": "database",
+    "issue_number": 3526,
+    "bullet_points": [],
+    "created_at": "2025-03-25"
+}
\ No newline at end of file