Foros del Web » Programando para Internet » PHP »

hallar incio y fin semana con función de 6 lineas

Estas en el tema de hallar incio y fin semana con función de 6 lineas en el foro de PHP en Foros del Web. A raíz de este post: http://www.forosdelweb.com/f18/funci...semana-864853/ , decidí buscar en este foro algo más corto, pero sólo encontré: http://www.forosdelweb.com/f18/prime...el-ano-658585/ y http://www.forosdelweb.com/f18/funci...semana-429790/ No le tienen cariño ...
  #1 (permalink)  
Antiguo 01/12/2010, 11:37
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 3 meses
Puntos: 202
hallar incio y fin semana con función de 6 lineas

A raíz de este post: http://www.forosdelweb.com/f18/funci...semana-864853/ , decidí buscar en este foro algo más corto, pero sólo encontré:

http://www.forosdelweb.com/f18/prime...el-ano-658585/ y http://www.forosdelweb.com/f18/funci...semana-429790/

No le tienen cariño al strtotime

AVISO: calendario europeo, si se quiere hacer empezando desde el domingo cambiar:
Código PHP:
Ver original
  1. $primer_dia_semana=(date("w", $fecha)!=1)?date('d-m-y', strtotime("last Monday",$fecha)):date('d-m-y', strtotime("last Monday",strtotime("+1 day",$fecha)));
  2.     $ultimo_dia_semana=(date("w", $fecha)!=0)?date('d-m-y', strtotime("next Sunday",$fecha)):date('d-m-y', strtotime("next Sunday",strtotime("-1 day",$fecha)));
POR:
Código PHP:
Ver original
  1. $primer_dia_semana=(date("w", $fecha)!=0)?date('d-m-y', strtotime("last Sunday",$fecha)):date('d-m-y', strtotime("last Sunday",strtotime("+1 day",$fecha)));
  2.     $ultimo_dia_semana=(date("w", $fecha)!=6)?date('d-m-y', strtotime("next Saturday",$fecha)):date('d-m-y', strtotime("next Saturday",strtotime("-1 day",$fecha)));

Código PHP:
Ver original
  1. <?php
  2. $fecha='18/11/2010';
  3. echo IniFinSemana ($fecha);
  4.  
  5. function IniFinSemana($fecha)
  6. {
  7.     $primer_dia_semana=""; $ultimo_dia_semana="";
  8.     $fecha= preg_split('/\D/',$fecha);
  9.     $fecha=mktime(0, 0, 0, $fecha[1], $fecha[0], $fecha[2]);
  10.  
  11.     $primer_dia_semana=(date("w", $fecha)!=1)?date('d-m-y', strtotime("last Monday",$fecha)):date('d-m-y', strtotime("last Monday",strtotime("+1 day",$fecha)));
  12.     $ultimo_dia_semana=(date("w", $fecha)!=0)?date('d-m-y', strtotime("next Sunday",$fecha)):date('d-m-y', strtotime("next Sunday",strtotime("-1 day",$fecha)));
  13.    
  14.     return "Primer dia de la semana".$primer_dia_semana."<br>Ultimo dia de la semana".$ultimo_dia_semana;
  15. }
  16. ?>

Por si no se entiende explico brevemente mi idea:

1º Extraemos la fecha.
2º El primer dia de una semana siempre es lunes.
3º Comprobamos si esa fecha es lunes con --> date("w", $fecha)

-Si no es lunes hallamos el anterior lunes con last monday
-Si ya es lunes last monday iría a la semana anterior, para evitarlo le sumo un día a la fecha.

4º Hallar el próximo domingo

-Si no es domingo lo hallamos con next sunday
-Si es domingo next sunday iría a la semana siguiente, para evitarlo le resto un día a la fecha.


Para el calendario empezando por domingo es lo mismo sólo cambia que es de domingo a sábado.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(

Última edición por IEKK; 01/12/2010 a las 11:45
  #2 (permalink)  
Antiguo 01/12/2010, 13:32
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: hallar incio y fin semana con función de 6 lineas

Código PHP:
<?php
function getWeeks($d)
{
    foreach(array(
1=>'Monday',7=>'Sunday')as$a=>$b)
    
$c[$b]=date('d-m-Y',strtotime('last '.$b,strtotime($d.'+'.$a.'day')));
    return 
$c;
}
print_r(getWeeks('06-12-2010'));
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 01/12/2010, 14:45
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 3 meses
Puntos: 202
Respuesta: hallar incio y fin semana con función de 6 lineas

Cita:
Iniciado por Hidek1 Ver Mensaje
Código PHP:
<?php
function getWeeks($d)
{
    foreach(array(
1=>'Monday',7=>'Sunday')as$a=>$b)
    
$c[$b]=date('d-m-Y',strtotime('last '.$b,strtotime($d.'+'.$a.'day')));
    return 
$c;
}
print_r(getWeeks('06-12-2010'));
(sin royos raros xD) No se m hbía ocurrido así
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(

Etiquetas: lineas, semana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:59.