How to "freeze" a View at the time of publishing?
I thought about the relationship angle and couldn't find one but I have been known to be blind in the past to things in front of me and instead went the hook_views_pre_view() route...

function YOUR_CUSTOM_MODULE_views_pre_view(&amp;$view, &amp;$display_id, &amp;$args) {

  if ($view-&gt;name=='last_sunday_and_now') { // or whatever your View is named

    // see what we have to work with...

    $filters = $view-&gt;display_handler-&gt;get_option('filters');
    drupal_set_message('&lt;pre&gt;Before: ' . print_r($filters, TRUE) . '&lt;/pre&gt;');

    // here on my box it is 'date_filter' so let's change things up

    $filters['date_filter']['default_date'] = // set this to whatever you want instead of "Last Sunday"
    $filters['date_filter']['default_to_date'] = // set this to whatever you want instead of "now"

    $overrides = array();
    $overrides['filters'] = $filters;

    foreach ($overrides as $option =&gt; $value) {
      $view-&gt;display_handler-&gt;override_option($option, $value);
    }

    // let's see what we have...

    $filters = $view-&gt;display_handler-&gt;get_option('filters');
    drupal_set_message('&lt;pre&gt;After: ' . print_r($filters, TRUE) . '&lt;/pre&gt;');

  }

}


It's up to you to define the logic of what to set the dates to, but if this is sitting on a node, you can grab the post date of it via menu_get_object() pretty readily and then use any of the various date and time functions to create the dates.