Foros del Web » Programando para Internet » PHP »

Saber que fecha es el mismo dia de la misma semana pero del año pasado

Estas en el tema de Saber que fecha es el mismo dia de la misma semana pero del año pasado en el foro de PHP en Foros del Web. Hola, tengo q hacer un comparativo respecto el año pasado, pero no comparando la misma fecha sino el mismo dia, es decir, si hoy estamos ...
  #1 (permalink)  
Antiguo 01/12/2009, 01:45
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Saber que fecha es el mismo dia de la misma semana pero del año pasado

Hola,

tengo q hacer un comparativo respecto el año pasado, pero no comparando la misma fecha sino el mismo dia, es decir, si hoy estamos a la semana 49, es martes, fecha 1/12/2009, como puedo saber que fecha tiene el martes de la semana 49 pero del 2008???

saludos y gracias
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #2 (permalink)  
Antiguo 01/12/2009, 03:36
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Saber que fecha es el mismo dia de la misma semana pero del año pasado

bueno, dejo código a quien le interese, se puede perfeccionar pero de momento me saca del apuro!

lo que hace: tu le pasas un fecha, y te devuelve el mismo día del año pasado, es decir, si marcas hoy de devolverá la fecha del Martes de la semana 49 del 2008!


Código PHP:
Ver original
  1. function data_pasada($data){
  2.  
  3.    
  4.  
  5.     $data_part  = explode("/",$data);
  6.     // -- Calculem Setmana
  7.     $setmana    = date('W',  mktime(0,0,0,$data_part[1],$data_part[0],$data_part[2]));
  8.     // -- Numero de dia
  9.     $num_dia    = date("w",mktime(0,0,0,$data_part[1],$data_part[0],$data_part[2]));
  10.     // -- Diumenge = 0, Dilluns = 1, Dimarts = 2... fem el canvi perque dilluns = 0, dimarts = 1...
  11.     if($num_dia  == 0){
  12.        
  13.         $num_dia = 6;
  14.        
  15.     }else{
  16.        
  17.         $num_dia = $num_dia - 1;
  18.        
  19.     }
  20.    
  21.     $setmana = $setmana-date("W");
  22.    
  23.     if($setmana >= 0){
  24.         $setmana = "+".$setmana;
  25.     }
  26.    
  27.     $fecha = date("Y-m-d", strtotime($setmana . " week"));
  28.  
  29.     $fecha = explode("-",$fecha);
  30.    
  31.     $any_p   = $fecha[0] - 1;
  32.    
  33.     $queDiaRepresenta = date('w', mktime(0,0,0,$fecha[1],$fecha[2],$any_p));
  34.    
  35.     $n = 1;
  36.     $semana = array();
  37.    
  38.     while($n <=7){
  39.    
  40.         $dia = ($fecha[2]-$queDiaRepresenta+$n++);
  41.         $semana[] = date('Ymd', mktime(0,0,0,$fecha[1],$dia,$any_p));
  42.        
  43.     }
  44.  
  45.     return $semana[$num_dia];
  46.    
  47. }

PD: parte de código esta por aquí el foro pero no he reecontrado donde!

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 01/12/2009 a las 03:45
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 18:44.