Foros del Web » Programando para Internet » PHP »

saber las fechas q pertenecen a un semana dado el año y la semana

Estas en el tema de saber las fechas q pertenecen a un semana dado el año y la semana en el foro de PHP en Foros del Web. Hola, este codigo lo saque daqui el foro pero no he conseguido encontrarlo otra vez. Código PHP: //variables $semana = 1 ; $anito = 2007 ...
  #1 (permalink)  
Antiguo 09/01/2007, 10:24
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
saber las fechas q pertenecen a un semana dado el año y la semana

Hola, este codigo lo saque daqui el foro pero no he conseguido encontrarlo otra vez.
Código PHP:
//variables
$semana=1;
$anito=2007;;
//deixem en blanc la clausula where
$wherehan="";
//Amb la setmana obtindrem el timestamp corresponent 
//i la data del primer dia
$ano=$anito-1970
$timestamp=(($semana-1)*$ano*365 ceil($ano/4))*24*3600
$wherehan="(";
for(
$int $int<=7;$int++){
    
//dies de la setmana
    
$dia=date ("Ymd",$timestamp+$int*24*3600); 
    
//Construim la clausula WHERE amb els dies corresponents
    
if ($int==1){
        
$wherehan.="data='$dia'";
    }else{
        
$wherehan.=" OR data='$dia'";
    }
}
$wherehan.=")";
echo 
$wherehan
lo q hago en este codigo es crearme una clausula WHERE, q sirve para consultar los resultados d los dias de una semana.
hasta el 2006 esta funcion me iba bien, pero ahora con el 2007 me descuadra, es decir, la semana 1, le pertenecen los dias del 1 al 7 y la semana 2 le pertenecen del 8 als 14. y no me da ese resultado...

alguien me puede echar un cable?
sino es con esta funcion con otra, la verdad q me da= usar una q otra siempre y cuando el resultado sea bueno!

gracias por adelantado!!!

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
  #2 (permalink)  
Antiguo 09/01/2007, 14:04
 
Fecha de Ingreso: marzo-2006
Mensajes: 178
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: saber las fechas q pertenecen a un semana dado el año y la semana

No entiendo mucho a que te refieres, si tu calendario es de Lunes a Domingo, entonces esta todo correcto ya que el Lunes fue 1, y el Domingo fue 7, la semana 2 empieza el 8 y termina el 14, repito si es que tu calendario es de Lunes a Domingo
  #3 (permalink)  
Antiguo 09/01/2007, 21:23
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: saber las fechas q pertenecen a un semana dado el año y la semana

Hola me parece que ese script fue ajustado para que trabajara para ese año en
especifico, debido a que el año pasado (2006) la semana comenzó un día domingo y no un
día lunes... entonces si hizo fue restar una semana en el calculo del $timestamp,
fíjate bien.-
Código PHP:
$timestamp=(($semana-1)*$ano*365 ceil($ano/4))*24*3600
...Para este año que comenzó un día Lunes haz lo siguiente : remplaza esta línea por esta
Código PHP:
$timestamp=(($semana)*$ano*365 ceil($ano/4))*24*3600
Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #4 (permalink)  
Antiguo 10/01/2007, 01:16
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: saber las fechas q pertenecen a un semana dado el año y la semana

Hola,
Cita:
Iniciado por supertaldo Ver Mensaje
No entiendo mucho a que te refieres, si tu calendario es de Lunes a Domingo, entonces esta todo correcto ya que el Lunes fue 1, y el Domingo fue 7, la semana 2 empieza el 8 y termina el 14, repito si es que tu calendario es de Lunes a Domingo
los tiros no van por aqui, lo q necesito es una funcion q dado un año y una semana me devuelva los dias de esa semana, es decir, si le mando año 2007 semana 4 el resultado seria del 22 al 28 de enero, si le digo 2006 semana 38 me tiene q devolver del 18 al 24 de septiembre...
espero q asi se me haya entendido mejor.

Cita:
Iniciado por xyyy7 Ver Mensaje
Hola me parece que ese script fue ajustado para que trabajara para ese año en
especifico, debido a que el año pasado (2006) la semana comenzó un día domingo y no un
día lunes... entonces si hizo fue restar una semana en el calculo del $timestamp,
fíjate bien.-
Código PHP:
$timestamp=(($semana-1)*$ano*365 ceil($ano/4))*24*3600
...Para este año que comenzó un día Lunes haz lo siguiente : remplaza esta línea por esta
Código PHP:
$timestamp=(($semana)*$ano*365 ceil($ano/4))*24*3600
Saludos.-
ya probe esto pero igualmente el resultado es incorrecto, si le quito el menos 1 si le mando año 2007 semana 2 el resultado es del 17 al 23 de enero asi q tampoco es por eso...

alguna idea mas?
sabeis de alguna formulacio, funcion, etc etc etc q me diga los dias segun un año y una semana dada?

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
  #5 (permalink)  
Antiguo 10/01/2007, 01:29
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: saber las fechas q pertenecen a un semana dado el año y la semana

Bueno probando el script en mi servidor me arrojaron estos resultados.. que me parecieron MUY ACEPTABLES

Código PHP:
//bla bla bla...
$timestamp=(($semana)*$ano*365 ceil($ano/4))*24*3600;  
//bla bla bla... 
Resultados.-
(data='20070109' OR data='20070110' OR data='20070111' OR data='20070112' OR data='20070113' OR data='20070114' OR data='20070115')

Claramente se nota que esta mostrando las fechas de la semana ACTUAR (osea semana #2).- ahora soy yo quien te dice que no le veo el problema...

por otro lado...
opinando a tus otras preguntas tenemos que en http://ve.php.net/date

encontramos esto

date("W"); Número de la semana del año ISO-8601, las semanas comienzan en Lunes (agregado en PHP 4.1.0) Ejemplo: 42 (la 42va semana del año)

OSEA
Código PHP:
echo date("W"); // Imprime numero de la semana actuar (en este caso 2) 
Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #6 (permalink)  
Antiguo 10/01/2007, 01:35
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: saber las fechas q pertenecen a un semana dado el año y la semana

haz probado en hacerle un test a la fecha de tu servidor?

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #7 (permalink)  
Antiguo 10/01/2007, 01:46
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: saber las fechas q pertenecen a un semana dado el año y la semana

Hola de nuevo,
pues no se como optienes ese resultado porque a mi ni se me acerca.
actualmente tengo este codigo:
Código PHP:
//variables
$semana=2;
$superano=2007;

//deixem en blanc la clausula where
$wherehan="";
//Amb la setmana obtindrem el timestamp corresponent 
//i la data del primer dia
$ano=$superano-1970
$timestamp=(($semana)*$ano*365 ceil($ano/4))*24*3600
$wherehan="(";
for(
$int $int <= 7;$int++){
    
//dies de la setmana
    
$dia=date ("Ymd",$timestamp+$int*24*3600); 
    
//Construim la clausula WHERE amb els dies corresponents
    
if ($int==1){
        
$wherehan.="data='$dia'";
    }else{
        
$wherehan.=" OR data='$dia'";
    }
}
$wherehan.=")";
echo 
$wherehan
y el echo me devuelve:
(data='20070117' OR data='20070118 OR data='20070119' OR data='20070120' OR data='20070121' OR data='20070122' OR data='20070123')
mientras q la semana 2 del año 2007 los dias son:
(data='20070108' OR data='20070109' OR data='20070110' OR data='20070111' OR data='20070112' OR data='20070113' OR data='20070114')
EDITADO:
en cambio si dejo la funcion con el menos 1 se acerca bastante ya q me muestra los dia del 10 al 16... peor tmp son esos dias...
estoy empezando a delirar y el problema es q me urge...


y en cuanto a esto:
date("W"); Número de la semana del año ISO-8601, las semanas comienzan en Lunes (agregado en PHP 4.1.0) Ejemplo: 42 (la 42va semana del año)

supongo q se me explique mal... lo q necesito es lo mismo q pido arriba, q dado una semana y un año, me devuelva las fechas dese año y desa semana.

tendria q ser una funcion generica, q le diera igual si empieza en lunes o en sabado, porque se trata de hacer una funcion de cierre semanal, la cual contabiliza los resultados desa semana. (y los datos los tengo por fecha).

espero q se me entienda...

saludos y gracias de antemano!

EDITADO:
Cita:
Iniciado por xyyy7 Ver Mensaje
haz probado en hacerle un test a la fecha de tu servidor?
Saludos.-
Ahora mismo lo estoy probando en local pra despues subirlo al servidor, en local trabajo con windows XP, y en el servidor, q es propio, trabajamos en Linux!
__________________
"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; 10/01/2007 a las 02:15
  #8 (permalink)  
Antiguo 10/01/2007, 02:06
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: saber las fechas q pertenecen a un semana dado el año y la semana

Bueno ami me imprime todo Bien.... lo unico que hice en esta oportunidad fue conservar el resta de la semana en :
Código PHP:
$timestamp=(($semana-1)*$ano*365 ceil($ano/4))*24*3600
..Y edite esta linea
Antes :
Código PHP:
$dia=date ("Ymd",$timestamp+$int*24*3600); 
Despues :
Código PHP:
$dia=date ("Ymd",$timestamp+$int*24*3600-86400);  // Reste un dia.- 
Codido de Prueba.-
Código PHP:
<?php
$semana
=2;
$anito=2007;
//deixem en blanc la clausula where
$wherehan="";
//Amb la setmana obtindrem el timestamp corresponent 
//i la data del primer dia
$ano=$anito-1970
$timestamp=(($semana-1)*$ano*365 ceil($ano/4))*24*3600
$wherehan="(";
for(
$int $int<=7;$int++){
    
//dies de la setmana
    
$dia=date ("Ymd",$timestamp+$int*24*3600-86400); 
    
//Construim la clausula WHERE amb els dies corresponents
    
if ($int==1){
        
$wherehan.="data='$dia'";
    }else{
        
$wherehan.=" OR data='$dia'";
    }
}
$wherehan.=")";
echo 
$wherehan
echo 
"\n\N<b>Fecha Actuar del Server :<b>".date(d/m/Y);
?>
El codigo asi como esta IMPRIMIO LO SIGUIENTE :

Cita:
(data='20070108' OR data='20070109' OR data='20070110' OR data='20070111' OR data='20070112' OR data='20070113' OR data='20070114')

Fecha Actuar del Server :10/01/2007

Insisto.. intentastes hacerle un test a la hora de tu servidor...

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #9 (permalink)  
Antiguo 10/01/2007, 02:23
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: saber las fechas q pertenecen a un semana dado el año y la semana

Hola de nuevo, y antetodo muchas gracias.

copie tu codigo y me sale un resultado distinto al tuyo:

(data='20070109' OR data='20070110' OR data='20070111' OR data='20070112' OR data='20070113' OR data='20070114' OR data='20070115')
Fecha Actuar del Server :10/01/2007
__________________
"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
  #10 (permalink)  
Antiguo 10/01/2007, 02:38
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: saber las fechas q pertenecen a un semana dado el año y la semana

Bueno la cosa rara... ¿que sera?.. por que para descartar que sea mi servidor local... subi tu script a un servidor diferente a cual lo estaba probando y sigue funcionando bien.-

Ruta : http://www.araguaenlinea.com/sergi_climent.php

Bueno ni modo.

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #11 (permalink)  
Antiguo 10/01/2007, 02:56
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: saber las fechas q pertenecen a un semana dado el año y la semana

buff... en serio.. es para volverse loko!

jajaja me rio para no llorar... jajaja!
yo es q... estoy ahora mismo flipando...
yo lo estoy probando en mi servidor y en mi pc y me sigue dando lo mismo

se te ocurre alguna cosa? q puede estar pasando? le resto dos dias? jajaja!

EDITADO:

optare por la opcion B. crearme una tabla con todas la fechas, sus semanas, sus meses y sus años...
tabla fecha
-fecha
-semana
-mes
-año

y asi se acabaron las funciones q funcionan dependiendo de un factor X
__________________
"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; 10/01/2007 a las 03:29
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 20:53.