Foros del Web » Programando para Internet » PHP »

Mostrar diferentes textos segun hora y dia

Estas en el tema de Mostrar diferentes textos segun hora y dia en el foro de PHP en Foros del Web. Hola gente, como estan? Bueno, como veran estoy recurriendo muy seguido al foro, jeje... Soy principiante en php, pero bueno, de algo sirve mis pequeños ...
  #1 (permalink)  
Antiguo 10/03/2013, 21:13
Avatar de elvaleehdj  
Fecha de Ingreso: julio-2011
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Mostrar diferentes textos segun hora y dia

Hola gente, como estan?

Bueno, como veran estoy recurriendo muy seguido al foro, jeje...

Soy principiante en php, pero bueno, de algo sirve mis pequeños conocimientos...

Necesito saber, esta vez, como puedo hacer para que depende de la hora y del día diga diferentes cosas..

Por ejemplo, de Lunes a Viernes de 15:00 a 17:00 necesitaria que diga "Estas escuchando: La previa de la tarde con Mariano Martinez"...

Un ejemplo, jeje..

Y haci hacer con cada hora...

Gracias
  #2 (permalink)  
Antiguo 10/03/2013, 21:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar diferentes textos segun hora y dia

La función date() te puede entregar muchos valores con respecto a fecha y hora, de ahí es muy sencillo, ya aplicar la lógica no debería costar nada de trabajo.

El problema es que por lo general obtienes la hora del servidor, y no la hora del usuario que está visitando el sitio, a lo cual podrías recurrir a Javascript, que ya es tema a parte.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/03/2013, 21:31
Avatar de elvaleehdj  
Fecha de Ingreso: julio-2011
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Mostrar diferentes textos segun hora y dia

Cita:
Iniciado por pateketrueke Ver Mensaje
La función date() te puede entregar muchos valores con respecto a fecha y hora, de ahí es muy sencillo, ya aplicar la lógica no debería costar nada de trabajo.

El problema es que por lo general obtienes la hora del servidor, y no la hora del usuario que está visitando el sitio, a lo cual podría recurrir a Javascript, que ya es tema a parte.
Si, lo ideal es que tome la hora del servidor, ya que es una radio, jeje...

Te agradeceria si me dejas el codigo, ya que como dije soy recien empezado en esto de php...

Lo que tenia en mente es capturar los datos y asignarle la variable $hora y al dia asignarle $dia

Despues decirle en un if que si $hora == 0 , por ejemplo, muestre tal hora, pero repito, soy principiante..
  #4 (permalink)  
Antiguo 10/03/2013, 21:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar diferentes textos segun hora y dia

Pues tienes razón, la lógica es esa, no más consulta el manual por favor, ahí también hay ejemplos.

Esa de "ser principiante" es muy mala excusa y tiende a interpretarse como "no tengo capacidad de iniciativa e investigación", espero no lo tomes a mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/03/2013, 21:38
Avatar de elvaleehdj  
Fecha de Ingreso: julio-2011
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Mostrar diferentes textos segun hora y dia

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues tienes razón, la lógica es esa, no más consulta el manual por favor, ahí también hay ejemplos.

Esa de "ser principiante" es muy mala excusa y tiende a interpretarse como "no tengo capacidad de iniciativa e investigación", espero no lo tomes a mal.
No lo tomo a mal..

No es una excusa, soy principiante encerio, empeze en esto hace 1 mes, y tengo 13 años, asique te podras imaginar...

De todas formas, gracias! ;)
  #6 (permalink)  
Antiguo 10/03/2013, 21:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar diferentes textos segun hora y dia

No te preocupes, yo empecé a la misma edad, sin computadora propia y sin Internet, así que te imaginarás lo que costaba en ese entonces conseguir ayuda.

Suerte, y no escatimes el poder del Internet, y mucho menos, el poder de la documentación.

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/03/2013, 21:45
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Mostrar diferentes textos segun hora y dia

De forma rápida podrías crear un array con todas las frases que quieras publicar indicando el dia y la hora en que se debe publicar, algo así...
Código PHP:
Ver original
  1. <?php
  2. date_default_timezone_set('America/Mexico_City');
  3.  
  4. $frases = array(
  5.         array(
  6.                 'dia'=>1, //indica el numero del día de la semana 1 para lunes 7 para domingo
  7.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  8.                 'horaFin'=>22, //igual pero para que se deje de publicar
  9.                 'frase'=>'Aquí tu frase a publicar'
  10.             ),
  11.         array(
  12.                 'dia'=>2, //indica el numero del día de la semana 1 para lunes 7 para domingo
  13.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  14.                 'horaFin'=>22, //igual pero para que se deje de publicar
  15.                 'frase'=>'Aquí tu frase a publicar2'
  16.             ),
  17.         array(
  18.                 'dia'=>3, //indica el numero del día de la semana 1 para lunes 7 para domingo
  19.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  20.                 'horaFin'=>22, //igual pero para que se deje de publicar
  21.                 'frase'=>'Aquí tu frase a publicar3'
  22.             ),
  23.         array(
  24.                 'dia'=>4, //indica el numero del día de la semana 1 para lunes 7 para domingo
  25.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  26.                 'horaFin'=>22, //igual pero para que se deje de publicar
  27.                 'frase'=>'Aquí tu frase a publicar4'
  28.             ),
  29.         array(
  30.                 'dia'=>5, //indica el numero del día de la semana 1 para lunes 7 para domingo
  31.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  32.                 'horaFin'=>22, //igual pero para que se deje de publicar
  33.                 'frase'=>'Aquí tu frase a publicar5'
  34.             ),
  35.         array(
  36.                 'dia'=>6, //indica el numero del día de la semana 1 para lunes 7 para domingo
  37.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  38.                 'horaFin'=>22, //igual pero para que se deje de publicar
  39.                 'frase'=>'Aquí tu frase a publicar7'
  40.             ),
  41.         array(
  42.                 'dia'=>7, //indica el numero del día de la semana 1 para lunes 7 para domingo
  43.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  44.                 'horaFin'=>22, //igual pero para que se deje de publicar
  45.                 'frase'=>'Aquí tu frase a publicar7'
  46.             ),
  47.         );
  48.  
  49. $dia = date('N');
  50. $horaActual = date('G');
  51.  
  52. //buscamos las frases para publicar
  53. $frase = '';
  54. foreach($frases as $item) {
  55.     //verificamos si hay una frace para este día de semana
  56.     if ($item['dia'] == $dia) {
  57.         //ahora vemos si hay una frase para esta hora pero que este dentro del rango de duración
  58.         if ($item['horaInicio'] >= $horaActual && $horaActual <= $item['horaFin']) {
  59.             $frase = $item['frase'];
  60.         }
  61.     }
  62. }
  63.  
  64. //verificamos si se encontraron...
  65. echo !empty($frase) ? $frase : 'No hay frase para publicar';

Ojo, que esta muy basica, si usas mas de una frase por dia no funcionará, tendrías que volver a recorrer el array, etc, pero es un ejemplo basico para que te guies...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 10/03/2013, 21:52
Avatar de elvaleehdj  
Fecha de Ingreso: julio-2011
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Mostrar diferentes textos segun hora y dia

Cita:
Iniciado por Nemutagk Ver Mensaje
De forma rápida podrías crear un array con todas las frases que quieras publicar indicando el dia y la hora en que se debe publicar, algo así...
Código PHP:
Ver original
  1. <?php
  2. date_default_timezone_set('America/Mexico_City');
  3.  
  4. $frases = array(
  5.         array(
  6.                 'dia'=>1, //indica el numero del día de la semana 1 para lunes 7 para domingo
  7.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  8.                 'horaFin'=>22, //igual pero para que se deje de publicar
  9.                 'frase'=>'Aquí tu frase a publicar'
  10.             ),
  11.         array(
  12.                 'dia'=>2, //indica el numero del día de la semana 1 para lunes 7 para domingo
  13.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  14.                 'horaFin'=>22, //igual pero para que se deje de publicar
  15.                 'frase'=>'Aquí tu frase a publicar2'
  16.             ),
  17.         array(
  18.                 'dia'=>3, //indica el numero del día de la semana 1 para lunes 7 para domingo
  19.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  20.                 'horaFin'=>22, //igual pero para que se deje de publicar
  21.                 'frase'=>'Aquí tu frase a publicar3'
  22.             ),
  23.         array(
  24.                 'dia'=>4, //indica el numero del día de la semana 1 para lunes 7 para domingo
  25.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  26.                 'horaFin'=>22, //igual pero para que se deje de publicar
  27.                 'frase'=>'Aquí tu frase a publicar4'
  28.             ),
  29.         array(
  30.                 'dia'=>5, //indica el numero del día de la semana 1 para lunes 7 para domingo
  31.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  32.                 'horaFin'=>22, //igual pero para que se deje de publicar
  33.                 'frase'=>'Aquí tu frase a publicar5'
  34.             ),
  35.         array(
  36.                 'dia'=>6, //indica el numero del día de la semana 1 para lunes 7 para domingo
  37.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  38.                 'horaFin'=>22, //igual pero para que se deje de publicar
  39.                 'frase'=>'Aquí tu frase a publicar7'
  40.             ),
  41.         array(
  42.                 'dia'=>7, //indica el numero del día de la semana 1 para lunes 7 para domingo
  43.                 'horaInicio'=>21, //indica la hora a la que se comienza a publicar en formato 24 hrs
  44.                 'horaFin'=>22, //igual pero para que se deje de publicar
  45.                 'frase'=>'Aquí tu frase a publicar7'
  46.             ),
  47.         );
  48.  
  49. $dia = date('N');
  50. $horaActual = date('G');
  51.  
  52. //buscamos las frases para publicar
  53. $frase = '';
  54. foreach($frases as $item) {
  55.     //verificamos si hay una frace para este día de semana
  56.     if ($item['dia'] == $dia) {
  57.         //ahora vemos si hay una frase para esta hora pero que este dentro del rango de duración
  58.         if ($item['horaInicio'] >= $horaActual && $horaActual <= $item['horaFin']) {
  59.             $frase = $item['frase'];
  60.         }
  61.     }
  62. }
  63.  
  64. //verificamos si se encontraron...
  65. echo !empty($frase) ? $frase : 'No hay frase para publicar';

Ojo, que esta muy basica, si usas mas de una frase por dia no funcionará, tendrías que volver a recorrer el array, etc, pero es un ejemplo basico para que te guies...
En todos los casos me muestra "No hay frase para publicar"

Por cierto, muchas gracias
  #9 (permalink)  
Antiguo 10/03/2013, 21:57
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Mostrar diferentes textos segun hora y dia

Cita:
Iniciado por elvaleehdj Ver Mensaje
En todos los casos me muestra "No hay frase para publicar"

Por cierto, muchas gracias
¬¬ sin escucharme agresivo u ofensivo, pero en verdad quiero pensar que NO HAS HECHO UN COPY/PASTE del código y esperar a que funcione como arte de magia, claramente DEPENDE DEL DIA Y LA HORA especificada en cada frase, si tu hora que tiene el equipo donde haces las pruebas no coincide con la especificada en el array no imprimira nada, aunque también es posible que sea por el timezone que eh especificado al inicio del script, cambialo a tu zona o quita/comenta la linea de código indicada...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #10 (permalink)  
Antiguo 10/03/2013, 21:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar diferentes textos segun hora y dia

¿Ven por qué digo que hay que leer el manual antes de ponerse guapo con los ejemplos?

Algo aún mas primitivo.
Código PHP:
$dia = (int) date('d');
$hora = (int) date('H');
$dia_de_la_semana = (int) date('w');


echo 
"Dia: $dia, Hora: $hora, Dia de la semana: $dia_de_la_semana"
Ahora sólo resta aplicar algo de lógica.

Edito: eso, y lo que Nemutagk te dice.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 10/03/2013, 22:00
Avatar de elvaleehdj  
Fecha de Ingreso: julio-2011
Mensajes: 33
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Mostrar diferentes textos segun hora y dia

Cita:
Iniciado por Nemutagk Ver Mensaje
¬¬ sin escucharme agresivo u ofensivo, pero en verdad quiero pensar que NO HAS HECHO UN COPY/PASTE del código y esperar a que funcione como arte de magia, claramente DEPENDE DEL DIA Y LA HORA especificada en cada frase, si tu hora que tiene el equipo donde haces las pruebas no coincide con la especificada en el array no imprimira nada, aunque también es posible que sea por el timezone que eh especificado al inicio del script, cambialo a tu zona o quita/comenta la linea de código indicada...
Noo, obviamente que modifique algunos valores... Jeje

Pero no importa, vere como hago, porque hacer un if por cada hora y cada dia me va a costar muchisimo tiempo, y mucho codigo al dope :/

Tu codigo a mi no me sirve porque en el día puedo llegar a mostrar como 10 mensajes diferentes, de distintos programas musicales...

De todas formas, muchas gracias por tu ayuda..

Etiquetas: dia, textos
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 12:34.