Foros del Web » Programando para Internet » PHP »

no puedo comparar con meses anteriores!!!!

Estas en el tema de no puedo comparar con meses anteriores!!!! en el foro de PHP en Foros del Web. Tengo el siguiente codigo: Código PHP: <?php //Recupera una fila de resultado como una matriz asociativa while ( $row  =  mysql_fetch_assoc ( $fecha_inventario )){ ?> <tr><td> <?php //mostrando fecha inventario //echo $row['RDateTime']; list(  $year ,  $month ,  ...
  #1 (permalink)  
Antiguo 07/03/2008, 08:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
no puedo comparar con meses anteriores!!!!

Tengo el siguiente codigo:
Código PHP:
<?php
//Recupera una fila de resultado como una matriz asociativa
while ($row mysql_fetch_assoc($fecha_inventario)){
?>
<tr><td>
<?php
//mostrando fecha inventario
//echo $row['RDateTime'];
list( $year$month$day ) = explode('-'$row['RDateTime']);
echo 
"Month: $month; Day: $day; Year: $year<br>\n";
?>
</td>
<td>
<?php
//mostrando fecha actual
$fecha date("Y-m-d");  // Los delimitadores pueden ser barras, puntos o guiones
list( $year1$month1$day1 ) = split'[/.-]'$fecha );
echo 
"Month: $month1; Day: $day1; Year: $year1<br>\n";
?>
</td><td>

<?php
//comparando
if ($year == $year1 && $month == $month1){echo Activo;}
else { for(
$i=1$i<=90$i++){
$fecha date("Y-m-d"strtotime($fecha "- 1 day"));
list( 
$year2$month2$day2 ) = split'[/.-]'$fecha );
echo 
"Month: $month2; Day: $day2; Year: $year2<br>\n";
if (
$year == $year2 && $month == $month2 && $day == $day2){echo Activo;}}} 
?>
Lo que hace es mostrar la fecha de un servidor y la fecha actual; sino son las mismas; compara restandole 1 dia a la fecha hasta cumplir los 90 dias, la cosa es que compara bien al momento de comparar con el mes actual, por ejemplo si es un dia dentro del mes actual compara bien pero no para los meses anteriores.

Si alguien me puede ayudar se lo agradeceria....

Última edición por GatorV; 07/03/2008 a las 09:21 Razón: Agregar Tags PHP
  #2 (permalink)  
Antiguo 07/03/2008, 09:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: no puedo comparar con meses anteriores!!!!

Prueba cambiar tu sentencia de strtotime así:
Código PHP:
strtotime("-$i days"time()) 
Saludos.
  #3 (permalink)  
Antiguo 07/03/2008, 09:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: no puedo comparar con meses anteriores!!!!

O en dado caso si lo que estas comparando es si un producto estuvo en 90 días, puedes hacerlo directo en SQL y mas sencillo:
Código:
SELECT `idProducto` FROM `tabla` WHERE DATE_SUB(CURDATE(),INTERVAL 90 DAY) <= `RDateTime`;
Saludos.
  #4 (permalink)  
Antiguo 07/03/2008, 09:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: no puedo comparar con meses anteriores!!!!

Utilize la opcion de la primera respuesta y el problema sigue, lo que pasa es que al superar el mes actual, y llegar al mes anterior no comprar o no muestra el mensaje de activo.
Si el dia anterior esta dentro de el mes actual lo muestra sin problemas, pero cuando por ejemplo supera el primero del mes actual y llega al 30 del mes anterior no lo muestra como activo.
  #5 (permalink)  
Antiguo 07/03/2008, 10:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: no puedo comparar con meses anteriores!!!!

Mmm porque no pruebas la opción directa de SQL? Yo creo es mas fácil a tu estar calculando los rangos de fechas.

Saludos.
  #6 (permalink)  
Antiguo 07/03/2008, 12:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: no puedo comparar con meses anteriores!!!!

Lo que pasa es que no son productos, en eralidad son inventarios de equipos en donde se debe saber la fecha para confirmar si ha superado los 90 dias el equipo esta inactivo y si esta dentro de ese periodo es por que esta activo...

Gracias de todos modos.
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 04:54.