Estoy tratando de obtener el rango de semana utilizando el domingo como fecha de inicio, y una fecha de referencia, por ejemplo $date
, pero parece que no puedo resolverlo.Obtener días de inicio y finalización para una semana determinada en PHP
Por ejemplo, si tuviera $ date como 2009-05-01, obtendría 2009-04-26 y 2009-05-02. 2009-05-10 arrojaría 2009-05-10 y 2009-05-16. Mi código actual se parece a esto (no puedo recordar dónde lo levanté a partir, como se me ha olvidado 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 todo lo que hizo fue añadir 7 días a la corriente fecha. ¿Cómo harías esto?
que utiliza lo siguiente para obtener la última fecha de domingo formateada: fecha ('Ym-d', strtotime ('el último domingo')) –
¡Prueba la clase DateTime de PHP5! – jjwdesign
@John M, vea mi comentario a continuación sobre cómo "el último domingo" puede ser problemático si hoy es domingo y desea __esta__ semana. – cdmo