Foros del Web » Programando para Internet » PHP »

Traer el siguiente trimestre...

Estas en el tema de Traer el siguiente trimestre... en el foro de PHP en Foros del Web. Saludos!... A través de esta interesante formula , he podido sacar los trimestres entre dos fechas dadas. Esdecir, me da el número de trimestres presentes ...
  #1 (permalink)  
Antiguo 17/05/2010, 12:36
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Traer el siguiente trimestre...

Saludos!...

A través de esta interesante formula, he podido sacar los trimestres entre dos fechas dadas. Esdecir, me da el número de trimestres presentes en un rango de fecha (trimestres calendario: marzo, junio, septiembre y diciembre).

Lo que pasa es que queda como un número (1 para un trimestre, 2 para dos trimestres, 3 para tres trimestres y 4 para cuatro trimestres).

Lo que necesito es que a partir de la fecha 'hoy' me diga cuál es el siguiente trimestre más cercano. Es decir, si hoy es 17 de Mayo de 2010, el trimestre más próximo es el 30 de Junio de 2010... Una vez pasada esa fecha, es decir, el 1 de Julio de 2010, me tendrá que devolver el valor del trimestre próximo, el 30 de Septiembre de 2010.

Sabéis cómo lo podría resolver?

Gracias!
__________________
Andrew :P
  #2 (permalink)  
Antiguo 17/05/2010, 13:05
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Traer el siguiente trimestre...

Cita:
Iniciado por andrewp Ver Mensaje
Saludos!...

A través de esta interesante formula, he podido sacar los trimestres entre dos fechas dadas. Esdecir, me da el número de trimestres presentes en un rango de fecha (trimestres calendario: marzo, junio, septiembre y diciembre).

Lo que pasa es que queda como un número (1 para un trimestre, 2 para dos trimestres, 3 para tres trimestres y 4 para cuatro trimestres).

Lo que necesito es que a partir de la fecha 'hoy' me diga cuál es el siguiente trimestre más cercano. Es decir, si hoy es 17 de Mayo de 2010, el trimestre más próximo es el 30 de Junio de 2010... Una vez pasada esa fecha, es decir, el 1 de Julio de 2010, me tendrá que devolver el valor del trimestre próximo, el 30 de Septiembre de 2010.

Sabéis cómo lo podría resolver?

Gracias!
En el manual oficial de PHP he encontrado una función que aportó un usuario para obtener el trimestre a partir de una fecha que le pases

http://es2.php.net/manual/es/function.date.php#93235


Espero que te sirva,

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 17/05/2010, 13:14
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Traer el siguiente trimestre...

Gracias Synkronice... Es la función un poco más arriba de la que os he hablado. No obstante esa función trae los cuartos pasados numéricamente de una fecha:

Cita:
function quarterByDate($date)
{
return (int)floor(date('m', strtotime($date)) / 3.1) + 1;
}

$trimestre = quarterByDate(date('Y-m-d')); // Actual trimestre. Que para 2010-05-17 será "2"
Lo que indica que a la fecha 2010-05-17 estamos en el trimestre 2. Y yo busco que de alguna manera me pille el trimestre más cercano a la fecha de hoy. En mi ejemplo sería que al día de hoy (Mayo 17 de 2010) el próximo trimestre debería ser Junio 30 de 2010 (2010-06-30).
__________________
Andrew :P
  #4 (permalink)  
Antiguo 17/05/2010, 13:34
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Traer el siguiente trimestre...

Cita:
Iniciado por andrewp Ver Mensaje
Gracias Synkronice... Es la función un poco más arriba de la que os he hablado. No obstante esa función trae los cuartos pasados numéricamente de una fecha:



Lo que indica que a la fecha 2010-05-17 estamos en el trimestre 2. Y yo busco que de alguna manera me pille el trimestre más cercano a la fecha de hoy. En mi ejemplo sería que al día de hoy (Mayo 17 de 2010) el próximo trimestre debería ser Junio 30 de 2010 (2010-06-30).
Súmale uno al trimestre actual y tendrás el próximo trimestre :)

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #5 (permalink)  
Antiguo 17/05/2010, 14:48
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Traer el siguiente trimestre...

Lo que he intentado es hacer una función que me ejecute la sentencia mas o menos de la siguiente fallida manera:

Código PHP:
if ($hoy <= $trim1)
  echo 
$hoy." es mayor a ".$trim1;
elseif (
$trim1 $hoy <= $trim2)
  echo 
$hoy." es mayor a ".$trim2;
elseif (
$trim2 $hoy <= $trim3)
  echo 
$hoy." es mayor a ".$trim3;
else (
$trim3 $hoy <= $trim4)
  echo 
$hoy." es mayor a ".$trim4
Suponiendo que el formato de las fechas sea ('Y-m-d h:i:s A') y que cada una representa la fecha de cada trimestre, excepto prar hoy ($hoy). Pero a decir verdad, los condicionales no son mi fuerte...

POdríais echarme una mano?

Gracias...
__________________
Andrew :P
  #6 (permalink)  
Antiguo 18/05/2010, 02:26
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Traer el siguiente trimestre...

Pues bien... Finalmente he podido resolver mi inquietud usando el condicional "switch" basandome en este ejemplo:

Código PHP:
<?php
$myNumber 
5;

switch (
$myNumber) {
  case 
0:
    echo 
"Zero is not a valid value.";
    break;
  case 
$myNumber 0:
    echo 
"Negative numbers are not allowed.";
    break;
  default:
    echo 
"Great! Ready to make calculations.";
    break;
}
?>
Solo es necesario aplicar las variables correctas.

Saludos y gracias!

POST RESUELTO
__________________
Andrew :P

Etiquetas: siguiente
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:39.