Foros del Web » Programando para Internet » PHP »

como hago esto?

Estas en el tema de como hago esto? en el foro de PHP en Foros del Web. estoy haciendo una pagina la cual a traves de un menu muestra imagenes el problema es que el intervalo entre cada imagen es de 3 ...
  #1 (permalink)  
Antiguo 25/10/2005, 17:12
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
Pregunta como hago esto?

estoy haciendo una pagina la cual a traves de un menu muestra imagenes

el problema es que el intervalo entre cada imagen es de 3 horas antes con respecto de la actual y es que no se como hacer eso.

el nombre de la imagen se lo asigno tomando en cuenta la hora, dia, mes, año en que se descargo la imagen mas o menos asi:

imagen = 14_25_10_2005.jpg // hora_dia_mes_año

bueno yo hacia un split para que a la hora le reste 3 y asi obtener la imagen de hace 3 horas y restarle 6 para obtener la imagen de hace 6 horas y asi sucesivamente.

el problema es cada vez que se descargue la imagen actual se tienen que ir recorriendo las demas para acomodarlas a intervalos de 3 horas de diferencia bueno el problema es cuando el dia cambie por ejemplo:

que la imagen sea 01_26_10_2005.jpg aqui debemos tomar en cuenta que ya no podemos restarle solo a la hora sino que el dia es diferente y tambien va a ser un problema cuando el mes cambie y el año

podrian alguien aconsejarme?

gracias por su apoyo.
  #2 (permalink)  
Antiguo 25/10/2005, 17:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... no entendí el objetivo.... pero...

Si tú tienes una cadena con el formato "hh_DD_MM_YYYY" donde:
hh= Dos dígitos que representan la hora (en formato de 24hrs)
DD= El día del mes
MM= Mes
YYYYY= Año en cuatro dígitos

Se me ocurre que puedes hacer algo como:
Código PHP:
$cadena"05_25_10_2005";
// Dividimos por partes
$partesexplode("_" $cadena);
// acomodamos en formato válido: YYYY-MM-DD hh:mm:ss
$arreglo$aux[3]."-".$aux[2]."-".$aux[1]." ".$aux[0].":00:00";
// restamos las 3 hrs y damos formato de salida a la vez
$finaldate("H_d_m_Y"strtotime("$arreglo -3 hour"));
// Objetivo cumplido
echo $final// hh-3_dd_mm_YYYY .. al trabajar con datos de fechas nos darán datos válidos 
Supongo te servirá...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 26/10/2005, 12:53
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
no lo hace bueno no resta lo que deberia de restar

hice lo que me dijiste

Código PHP:
<?php
                                                                                                                        
   $fecha 
"10_26_10_2005";
   
$partes explode("_",$fecha);
   
$arreglo $partes[3]."-".$partes[2]."-".$partes[1]." ".$partes[0].":00:00";
   
$final date("H_d_m_Y",strtotime($arreglo."-3 hours"));
   echo 
"Resultado: ".$final."\n\n";
                                                                                                                        
                                                                                                                        
?>
espero veas que hice mal?

gracias por tu apoyo
  #4 (permalink)  
Antiguo 26/10/2005, 15:41
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... ... yo puse "hour" tú pusiste "hours"...
... ... yo tengo un error de sintáxis en el explode(), tu ya no ... clásico teclazo...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 26/10/2005, 16:02
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
pero no sale

crees que este mal el formato de la fecha?

o por que no hace las resta
  #6 (permalink)  
Antiguo 26/10/2005, 16:14
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... pero, entonces, ¿cuál es el resultado??...

.. sabes?. Veo que no dejas espacio entre la fecha y el lapso a restar:
Código PHP:
strtotime($arreglo."-3 hours")
// tendrías YYYY-MM-DD hh:mm:ss-3 hours ... esta mal
// Haz lo que dejé:
strtotime("$arreglo -3 hour"
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 26/10/2005, 16:21
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
estoy viendo que el problema es en Linux ya que ahi no hace la operacion bien pero en windows si esta bien.

ahora no se por que salga mal si se supone que es lo mismo.

cambia el formato ?

o a que se debe?

gracias por todo y disculpa las molestias
  #8 (permalink)  
Antiguo 26/10/2005, 16:58
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Raro... el formato que se maneja es UNIX.

Perdí la capacidad adivinatoria desde hace mucho... temo que tendrás que ayudar para que se te ayude. Repito: ¿cuál es el resultado?, ¿cuál es el comportamiento?.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 26/10/2005, 17:05
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
el resultado es el sigueiente:

10_26_10_2005 //esta es la variable
Resultado: 09_26_10_2005 //este es el resultado


si ves solo esta restando 1 hora

sera por el formato de fechas?

bueno la maquina tiene configurado la fecha en formato de 24 horas, es decir:

01 a 23 hrs
  #10 (permalink)  
Antiguo 26/10/2005, 17:08
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
.. ¿y cómo quedó el código finalmente??...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 26/10/2005, 17:10
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
igual

Código PHP:
<?php

   $fecha 
"10_26_10_2005";
   echo 
$fecha."\n";
   
$partes explode("_",$fecha);
   
$arreglo $partes[3]."-".$partes[2]."-".$partes[1]." ".$partes[0].":00:00";
   
$final date("H_d_m_Y",strtotime($arreglo."-3 hours"));
   echo 
"Resultado: ".$final."\n\n";


?>
solo que cuando estaba haciendo las pruebas lo hacia en Windows pero en el que se va a estar ejecutando en Linux Red Hat Enterprise y aqui es donde no sale
  #12 (permalink)  
Antiguo 26/10/2005, 17:14
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por payo
igual
Pués haz las correciones que te dije... :
Código PHP:
<?php 

   $fecha 
"10_26_10_2005"
   echo 
$fecha."\n"
   
$partes explode("_"$fecha); 
   
$arreglo $partes[3]."-".$partes[2]."-".$partes[1]." ".$partes[0].":00:00"
   
$final date("H_d_m_Y"strtotime("$arreglo -3 hour")); // dos veces lo mencioné
   
echo "Resultado: ".$final."\n\n"


?>
Haber si así queda...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #13 (permalink)  
Antiguo 26/10/2005, 17:19
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
le sigue restando solo 1
  #14 (permalink)  
Antiguo 26/10/2005, 17:20
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
te agradesco mucho tu apoyo dejame y checo bien creo que ya cause muchas molestias

gracias por tu apoyo
  #15 (permalink)  
Antiguo 26/10/2005, 17:21
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... esto no me esta gustando... ... Imprime $arreglo. ¿qué obtienes?
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #16 (permalink)  
Antiguo 26/10/2005, 17:23
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
fecha =10_26_10_2005
contenido de arreglo: 2005-10-26 10:00:00
Resultado: 09_26_10_2005
  #17 (permalink)  
Antiguo 26/10/2005, 17:24
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... dame un par de minutos... deja razono...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #18 (permalink)  
Antiguo 26/10/2005, 17:37
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
ok

muchas gracias
  #19 (permalink)  
Antiguo 26/10/2005, 18:04
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
jejeje.. no es que me tarde mucho en razonar sino que tube que salir... y de hecho tengo que retirarme.

... Crea un archivo con el siguiente contenido:
Código PHP:
<?php

   $fecha 
"10_26_10_2005";
   
$partes explode("_"$fecha);
   
$arreglo $partes[3]."-".$partes[2]."-".$partes[1]." ".$partes[0].":00:00";
   
$str =  strtotime("$arreglo");
   
$mktmktime(100010252005);
// he incluso
   
$mkt2mktime($arreglo[0], 00$arreglo[2], $arreglo[1], $arreglo[3]);

echo 
"$str <br> $mkt <br> $mkt2";
?>
Ve si los tres valores devueltos son exàctamente el mismo...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 03:24.