Ver Mensaje Individual
  #9 (permalink)  
Antiguo 24/07/2007, 17:44
Maverick777
 
Fecha de Ingreso: julio-2007
Mensajes: 1
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: funcion obtener primer y ultimo dia de semana?

Aquí una función que te puede servir, la probe con algunos datos, espero te sirva:

<?php
function semana($dia_de_la_semana)
{
$fecha_dada = $dia_de_la_semana;
$fecha_dada = split("\-",$fecha_dada);
$numerodiasemana = date('w', mktime(0,0,0,$fecha_dada[1],$fecha_dada[2],$fecha_dada[0]));
$segundos_del_numerodiasemana = mktime(0,0,0,$fecha_dada[1],$fecha_dada[2],$fecha_dada[0]);

//Cálculo primer dia
if ($numerodiasemana == 0)
$segundos_a_restar = (24 * 3600 * 0);
if ($numerodiasemana == 1)
$segundos_a_restar = (24 * 3600 * 1);
if ($numerodiasemana == 2)
$segundos_a_restar = (24 * 3600 * 2);
if ($numerodiasemana == 3)
$segundos_a_restar = (24 * 3600 * 3);
if ($numerodiasemana == 4)
$segundos_a_restar = (24 * 3600 * 4);
if ($numerodiasemana == 5)
$segundos_a_restar = (24 * 3600 * 5);
if ($numerodiasemana == 6)
$segundos_a_restar = (24 * 3600 * 6);

//Cálculo último día
if ($numerodiasemana == 0)
$segundos_a_sumar = (24 * 3600 * 6);
if ($numerodiasemana == 1)
$segundos_a_sumar = (24 * 3600 * 5);
if ($numerodiasemana == 2)
$segundos_a_sumar = (24 * 3600 * 4);
if ($numerodiasemana == 3)
$segundos_a_sumar = (24 * 3600 * 3);
if ($numerodiasemana == 4)
$segundos_a_sumar = (24 * 3600 * 2);
if ($numerodiasemana == 5)
$segundos_a_sumar = (24 * 3600 * 1);
if ($numerodiasemana == 6)
$segundos_a_sumar = (24 * 3600 * 0);

$primer_dia = $segundos_del_numerodiasemana - $segundos_a_restar;
$ultimo_dia = $segundos_del_numerodiasemana + $segundos_a_sumar;
$primer_dia = date("Y-m-d",$primer_dia);
$ultimo_dia = date("Y-m-d",$ultimo_dia);
return array($primer_dia,$ultimo_dia);
}
$inicio_y_fin = semana('2007-07-31');
echo $inicio_y_fin[0];
echo "<br>";
echo $inicio_y_fin[1];
?>