Obtenga días de inicio y finalización para una semana determinada en PHP

Estoy tratando de obtener el rango de semana usando el domingo como fecha de inicio y una fecha de referencia, digamos$date, pero parece que no puedo entenderlo.

Por ejemplo, si tuviera $ date como 2009-05-01, obtendría 2009-04-26 y 2009-05-02. 2009-05-10 produciría 2009-05-10 y 2009-05-16. Mi código actual se ve así (no recuerdo de dónde lo saqué, ya que olvidé poner la URL en mis comentarios):

function x_week_range(&$start_date, &$end_date, $date)
{
    $start_date = '';
    $end_date = '';
    $week = date('W', strtotime($date));
    $week = $week;

    $start_date = $date;

    $i = 0;
    while(date('W', strtotime("-$i day")) >= $week) {
        $start_date = date('Y-m-d', strtotime("-$i day"));
        $i++;
    }

    list($yr, $mo, $da) = explode('-', $start_date);

    $end_date = date('Y-m-d', mktime(0, 0, 0, $mo, $da + 6, $yr));
}

Me di cuenta de que todo lo que hizo fue agregar 7 días a la fecha actual. ¿Cómo harías esto

Respuestas a la pregunta(26)

Su respuesta a la pregunta