Foros del Web » Programando para Internet » PHP »

Calcular fechas > Cómo?

Estas en el tema de Calcular fechas > Cómo? en el foro de PHP en Foros del Web. Hola. Bueno, les cuento.. tengo un programa de radio por internet todos los viernes a las 21hs GMT -0300. Interesante? no :P El tema es ...
  #1 (permalink)  
Antiguo 05/08/2005, 07:15
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
Calcular fechas > Cómo?

Hola.

Bueno, les cuento.. tengo un programa de radio por internet todos los viernes a las 21hs GMT -0300. Interesante? no :P

El tema es el siguiente, deseo hacer un script PHP que calcule cuantos días faltan para el próximo Viernes 21hs GMT -0300 y con la posibilidad de que se cambie el uso horario para que gente de otros paises pueda calcular el horario correcto.

Y en el caso de que el usuario entre a la página entre las 21 y 23hs, se le avise que el programa está en el aire...

Me ayudan con el planteo de este problema?? qué funciones se aplicarían mejor??

bueno, gracias
  #2 (permalink)  
Antiguo 05/08/2005, 07:32
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Desde el vamos, usas timestamp en el server. A partir de ahi, que es una hora unica, la formateas para cada region usando gmdate...o sea, yo vere que el tiemstamp 12154121 me muestra 12:30, y a juan en españa le mostrara 15:30 (a modo de ejemplo)... lo que deberas saber, es de que zona es cada usuario, lo cual ya difiere y hay muchas maneras, lo cual no se si lo tenes ya solucionado.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 05/08/2005, 07:39
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
veré esas funciones... el tema es como hago (obviando las dif horarias):

Código PHP:
$falta "El próximo viernes a las 21hs" time();
echo 
"Faltan".$falta."para que empiece el programa."
con respecto a la zona horaria, creo que pondré un formulario con las GMT disponibles. aunque tal vez vea la manera de conocer el pais del usuario y calcular con la GMT más cercana y que si difiere, él la seleccione del formulario

gracias... veré que resulta con lo que me dijiste
  #4 (permalink)  
Antiguo 05/08/2005, 08:00
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Barbaro. Con el tema de tu pregunta, no es tan compliquete, si sabemos que un dia son 86400 seg, asi, que si queres saber cual es el timestamp de dos dias despues, deberias hacer algo como time() + (86400*2), y si esto lo restas con la fecha actual, y lo formateas, otendras el valor que necesitas (en min, seg, hgoras, o como quieras mostrarlo).
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 05/08/2005, 08:11
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
suena fácil... pero mmm creo que no entiendo...
olvidémosnos de las horas y zona horaria:
supongamos que hoy es lunes, cómo calculo calculo cuantos días faltan para el viernes?
fácil, lunes, martes, mier, jue y vie = 5 días.
ahora, cómo hago eso en php ?
  #6 (permalink)  
Antiguo 05/08/2005, 08:54
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
5 dias * 86400 te dara si lo imprimis con un date, poniendole solo dias, 5;)
EJ:
Código PHP:
<?php
$dias 
86400;

echo 
date("d",$dias);

exit;
?>

PD: Y el 5 lo sacaras con la diferencia dinamica del dia actual, al dia que vos le pongas hardcodeadamente en el php.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #7 (permalink)  
Antiguo 05/08/2005, 09:10
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
Cita:
Iniciado por nicolaspar
PD: Y el 5 lo sacaras con la diferencia dinamica del dia actual, al dia que vos le pongas hardcodeadamente en el php.
acá está el meoyo del asunto.. cómo calculo la dif en días ???
  #8 (permalink)  
Antiguo 05/08/2005, 09:46
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Código PHP:
<?php
$viernes
mktime0008122005 );  #Esto el timestamp del dia de tu programa, que es lo que usaremos estatico, aca, el viernes que viene.
$hoy mktime000date"m,d,Y" ) );  #Esto dara el timestamp de hoy, aunque sea mañana o ayer.
$faltan date"d", ( $viernes$hoy ) );
echo 
$faltan#Dif en dias
?>
Ahora bien, a esto tendrás que hacerle validaciones, como ser que lunes no sea menor a hoy (despues del 12 lo será), y demas....y actualizar el $viernes.
Esto podes meterlo en una funcion, y hacer que levante dinamicamente los viernes en $viernes, siendo el proximo siguiente la prioridad, y tb agregarle un horario....pero mi consejo es que te busques en google esos cronometros en js que abundaban y te mostraban cuanto faltaban para el 2000.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #9 (permalink)  
Antiguo 05/08/2005, 10:49
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
mm.. interesante.. voy a dijerir esto y ver como lo hago bien bien dinámico
ya que hay funciones que te dan el nombre del día :)

no será fácil, pero cuando termine.. lo posteo ;)
  #10 (permalink)  
Antiguo 05/08/2005, 11:48
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Perfecto!
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 17:47.