Foros del Web » Programando para Internet » PHP »

Semana del "nn" al "nn" de "nnnn" del "200N"

Estas en el tema de Semana del "nn" al "nn" de "nnnn" del "200N" en el foro de PHP en Foros del Web. Buenas amigos, les queria consultar lo siguiente: Nesecito programar un script que a partir de determinado dia de la semana (por ejemplo Lunes) me muestre ...
  #1 (permalink)  
Antiguo 12/07/2004, 06:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 20 años, 6 meses
Puntos: 0
Semana del "nn" al "nn" de "nnnn" del "200N"

Buenas amigos, les queria consultar lo siguiente:

Nesecito programar un script que a partir de determinado dia de la semana (por ejemplo Lunes) me muestre en pantalla por el resto de la semana el texto

Semana del "nn" al "nn" de "nnnn" del "200N", donde el primer nn, seria la fecha de arranque, y el segundo nn seria la fecha de arranque mas 7 dias. Despues vendria el mes y luego el año.

Si el script comenzaria hoy el texto quedaria asi:
Semana del 12 al 19 de Julio del 2004.

Se me ocurrio que cada principio de semana el script haga UPDATE de la fecha en una tabla de una base de datos, pero calculo que hay alguna manera mas simple de hacerlo.
ESPERO SUS CONSEJOS Y DESDE YA GRACIAS!!

Miguel.
  #2 (permalink)  
Antiguo 12/07/2004, 15:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. donde vas a manejar esas fechas?

En tu BD o sólo a partir de una fecha (tal vez obtenida de tu BD) quieres ver esa nueva fecha?

En tal caso .. desde PHP tienes las funciones
mktime() y date() para componer (y formatear) fechas desde PHP.

En SQL (de Mysql? usas?) tendrías sus equivalentes como DATE_FORMAT() y otras más tipo TO_DAYS() .. CURDATE() .. INTERVAL .. que te servirían para tu propósito.

Un saludo,
  #3 (permalink)  
Antiguo 13/07/2004, 19:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 20 años, 6 meses
Puntos: 0
Cluster gracias por tu respuesta!
estoy casi resolviendo este asunto, me falta saber unicamente como hago para que un script se ejecute el Lunes a las 00:00hs.

La lógica que use para resolver mi problema es la siguiente:
Creé una tabla llamada "semana" en la base de datos, esta tabla tiene 3 campos: dia, mes, año. Si el dia de la semana es "lunes" el script completa los campos de la tabla con los datos de la semana.
Si el dia de la semana NO es "lunes", o si el dia de la semana es "lunes" pero ya se actualizaron los campos el script esribe en pantalla el "dia-mes-año" haciendo una llamada a la base de datos y extrayendo los datos de los tres campos.

El problema es que este script se ejecutaría recien cuando la primer persona entre a la pagina...de todas maneras si nadie entro a la pagina, nadie se enteraria jamas de que los datos no fueron actualizoados, pero esto ya se pone filosófico, y creo que hay una manera (que yo no conosco) de hacer que un script se ejecute en un momento indicado previamente.

Adjunto el codigo que hize, y espero sus criticas.

Saludos!
Miguel.
<?
## 1-si los dias ya estan insertados en la DB paso al paso 3, sino al paso 2.
## 2-si es lunes se insertan los datos.
## 3-si no es lunes se leen los datos.
$dia_txt=date("D",time());
$dia_actual=date("j",time());
$mes_actual=date("F",time());
$anio_actual=date("Y",time());
$semana= mysql_db_query("base","SELECT * FROM semana WHERE anio = '".$anio_actual."' ", $link);

while($row = mysql_fetch_array($semana))
{
if($row["dia"]=='$dia_actual' and $row["mes"]=='$mes_actual' and $row["año"]=='$anio_actual' )
{
if($dia_txt=='Monday'){mysql_db_query("base", "UPDATE semana SET dia = '".$dia_actual."' , mes = '".$mes_actual."'
, mes = '".$anio_actual."' "
, $link);}
else{echo'<font size="2">Semana del '.$row["dia"].' al '.($row["dia"]+7).' de '.$row["mes"].' de '.$row["anio"].'.</font><br>';};
}
else
{
echo'<font size="2">Semana del '.$row["dia"].' al '.($row["dia"]+7).' de '.$row["mes"].' de '.$row["anio"].'.</font><br>';
};
};

?>
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 21:33.